我这里有一些代码连接到服务器,我收到错误java.net.ConnectException:Connection Refused。
我尝试在命令行上使用ping
并收到数据包,因此我知道它正在运行。
我也尝试使用telnet
连接到我的IP地址,它给了我相同的连接拒绝错误。我的代码有问题吗?我不确定为什么我的连接被拒绝了。
客户端:
public class InstantMessagingClient
{
private Socket socket;
public InstantMessagingClient(String serverName, int port)
{
new Thread() {
public void run()
{
try
{
System.out.println("Connecting to " + serverName + " and port: " + port);
//socket.setSoTimeout(10000);
socket = new Socket(serverName, port);
System.out.println("Client: connected to server at address: " + socket.getLocalAddress() + " and port: " + socket.getPort());
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}.start();
}
}
服务器:
public class InstantMessagingServer
{
private int port;
private Socket clientSocket;
private ServerSocket serverSocket;
public InstantMessagingServer(int port)
{
try
{
this.port = port;
serverSocket = new ServerSocket(port);
serverSocket.setSoTimeout(10000);
System.out.println("Server: Connected to port");
new Thread()
{
public void run()
{
while(true)
{
try
{
System.out.println("Server: Waiting for port " + serverSocket.getLocalPort());
System.out.println(serverSocket.getLocalSocketAddress());
clientSocket = serverSocket.accept();
System.out.println("Server: Just connected to " + clientSocket.getRemoteSocketAddress());
}
catch(Exception e)
{
System.out.println(e.toString());
break;
}
}
}
}.start();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
主:
public void main()
{
InstantMessagingServer server = new InstantMessagingServer(18638);
InstantMessagingClient client = new InstantMessagingClient("(My IP Address)", 18638);
}
答案 0 :(得分:1)
我收到错误java.net.ConnectException:Connection Refused。
这只有一个含义。没有什么东西在你试图连接的IP端口上监听。
我尝试在命令行上使用ping,然后收到数据包,所以我知道它正在运行。
您知道主机正在运行。没有证明您尝试连接的端口或服务。
我也尝试使用telnet连接到我的IP地址,它给了我相同的Connection Refused错误。
出于同样的原因。
我的代码有问题吗?
IP:端口错误或服务器尚未启动。