在本地主机上运行Java应用程序时出现问题
编辑:端口135似乎工作正常。索塔。它似乎没有拒绝连接,它允许我在控制台中写东西,尽管当我改变线路时什么也没有发生。我会尝试更多的东西 我正在尝试运行以下命令:在本地主机上运行Java应用程序时出现问题,java,localhost,Java,Localhost,编辑:端口135似乎工作正常。索塔。它似乎没有拒绝连接,它允许我在控制台中写东西,尽管当我改变线路时什么也没有发生。我会尝试更多的东西 我正在尝试运行以下命令: import java.net.*; import java.io.*; public class MainProgram { private static String host; public static void main(String[] args) { host = "localh
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "localhost";
for (int i = 1; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , i);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
import java.net.*;
导入java.io.*;
公共课程{
私有静态字符串主机;
公共静态void main(字符串[]args)
{
host=“localhost”;
对于(int i=1;i<10001;i++)
{
试一试{
插座=新插座(主机,i);
}捕获(未知后异常e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
}
但输出总是被拒绝连接。以下是部分输出:
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
java.net.ConnectException:连接被拒绝:连接
位于java.net.DualStackPlainSocketImpl.connect0(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(未知源)
位于java.net.AbstractPlainSocketImpl.doConnect(未知源)
位于java.net.AbstractPlainSocketImpl.connectToAddress(未知源)
位于java.net.AbstractPlainSocketImpl.connect(未知源)
位于java.net.PlainSocketImpl.connect(未知源)
位于java.net.socksocketimpl.connect(未知源)
位于java.net.Socket.connect(未知源)
位于java.net.Socket.connect(未知源)
位于java.net.Socket。(未知源)
位于java.net.Socket。(未知源)
有办法解决这个问题吗?远程java应用程序的调试配置如下所示:
我已经安装了WAMP服务器,也许我应该使用它?我不知道 使用本地ip地址,而不是使用“本地” 使用“cmd>ipconfig”查找您的本地主机ip地址,然后按如下方式添加:
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "192.168.0.13";
for (int i = 1; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , i);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
import java.net.*;
导入java.io.*;
公共课程{
私有静态字符串主机;
公共静态void main(字符串[]args)
{
host=“192.168.0.13”;
对于(int i=1;i<10001;i++)
{
试一试{
插座=新插座(主机,i);
}捕获(未知后异常e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
}
记住,这是我的本地主机ip!您的服务器可以是其他的。本地主机中没有正在侦听的serversocket。您需要运行服务器套接字来侦听将由客户端连接的端口。例如:
Server Socket:
+++++++++++++++++++++++++++++++++++++++++++
enter code here
package com.jdbc.test.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
Socket socket=null;
BufferedReader br=null;
PrintWriter pw=null;
try {
ServerSocket server=new ServerSocket(3081);
while(true){
socket=server.accept();
System.out.println("server:"+socket.getRemoteSocketAddress());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pw.close();
br.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
+++++++++++++++++++++++++++++++++++++++++++
Cleint Socket:
`enter code here`
+++++++++++++++++++++++++++++++++++++++++++
package com.jdbc.test;
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "localhost";
//for (int i = 10000; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , 3081);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
+++++++++++++++++++++++++++++++++++++++++++
服务器套接字:
+++++++++++++++++++++++++++++++++++++++++++
在这里输入代码
包com.jdbc.test.net;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.net.ServerSocket;
导入java.net.Socket;
公共类服务器{
公共静态void main(字符串[]args){
套接字=空;
BufferedReader br=null;
PrintWriter pw=null;
试一试{
ServerSocket服务器=新的ServerSocket(3081);
while(true){
socket=server.accept();
System.out.println(“服务器:+socket.getRemoteSocketAddress());
}
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}最后{
试一试{
关闭();
br.close();
socket.close();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
}
}
+++++++++++++++++++++++++++++++++++++++++++
Cleint插座:
`在这里输入代码`
+++++++++++++++++++++++++++++++++++++++++++
包com.jdbc.test;
导入java.net。*;
导入java.io.*;
公共课程{
私有静态字符串主机;
公共静态void main(字符串[]args)
{
host=“localhost”;
//对于(int i=10000;i<10001;i++)
{
试一试{
插座=新插座(主机,3081);
}捕获(未知后异常e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
}
+++++++++++++++++++++++++++++++++++++++++++
如果你不知道,就开始读这篇文章
我建议您编写自己的服务器套接字代码,以侦听来自客户端代码的连接(类似于您编写的代码)。
使用高于5000的高端口号,以避免保留端口和计算机程序可能使用的其他端口 假设
localhost
的DNS查找工作正常,则无需执行此操作。