什么会导致这种情况发生?
我把我的笔记本电脑搬到了朋友家来做这个项目。我在他的 xfinity 路由器上打开了相同的端口,并将我代码的所有区域都更改为他的 IP。但是,客户端似乎正在发送一条消息,而服务器从未通过这部分代码
System.out.println("running server!");
int nreq = 1;
try{
//SET ME PORT
ServerSocket sock = new ServerSocket(7332);
for(;;){
Socket newsock = sock.accept();
System.out.println("Creating thread...");
//Broken Old Login crap, needs reworked for map n stuff anyhow now
// Thread t = new ThreadHandler(newsock, nreq);
Thread t = new RequestInterpreter(newsock, nreq);
//t.run();
t.start();
nreq++;
}
}
catch(Exception e)
{
e.printStackTrace();
}
它永远不会打印“创建线程”。我不确定从哪里开始,这里可能出了什么问题?
唯一改变的是房子、IP、路由器和互联网。在其他地方工作。那些更改可能会阻止客户端发送
这是我也写的一个测试客户端。
import java.io.DataInputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class testClientConnection {
public static void main(String[] args) {
System.out.println("Starting testConnection");
try{
Socket s = new Socket("xx.xx.xx.xxx", 7332);
DataInputStream fromServer = new DataInputStream(s.getInputStream());
PrintWriter toServer = new PrintWriter(s.getOutputStream(), true);
toServer.println("account name");
toServer.println("password");
toServer.println("Login");
System.out.println("Sent message...");
String response = fromServer.readLine().toString();
//Toast the result here? //testing
System.out.println("response: " + response);
if (response.equals("Login Success")) {
System.out.println("Login Success!!!");
}
}
catch(Exception e){ /
}
}
}
巨大的更新!
好的,所以我的客户是一部安卓手机,我关掉了 wifi,所以它掉到了 4g-LTE 上。然后它起作用了。所以......有些东西阻止了客户端代码。那可能是什么?