我在连接服务器和套接字时遇到了一点问题。我确保 IP 是有效的,所以这不是地址不匹配的问题。也不是不匹配的端口(我也对此进行了测试)。
以下是服务器处理程序
class ServerConnect extends Thread
{
// ...
public ServerConnect(int port, String pass) throws IOException
{
// ...
this.start();
}
public void run()
{
try
{
// ...
while (! server.isClosed()) // Make Connections
{
Socket newClient = server.accept();
System.out.println("Connection Accepted!");
// ...
}
}
// ...
}
}
这是插座连接器
class ClientConnect extends Thread
{
// ...
public ClientConnect(InetAddress ip, int port, String pass)
{
try
{
System.out.println("Connecting to host:\t" + ip.toString() + ":" + port);
client = new Socket(ip, port);
output = new PrintWriter(client.getOutputStream(), true);
input = new Scanner(client.getInputStream());
// ...
}
// ...
}
// ...
}
首先,我尝试在本地进行测试。我输入了我的 IP 和 IP 127.0.0.1,它们都将我连接到了我在本地设置的服务器。但是,然后我从另一个 IP 尝试,这就是发生的事情。建立连接的线程冻结了一会儿,然后简单地跳到异常并告诉我它找不到主机,而主机从未说过它接受了连接。如果有帮助,我正在使用端口 4424 与服务器连接。在我的代码中是否有任何可能导致这种情况的原因,或者我没有采取什么措施来防止这种情况发生?
另外,如果我没有提供足够的信息,请告诉我。我已经做了大量的测试,并且可以做更多的事情来帮助找出问题所在。