【发布时间】:2011-08-15 23:20:53
【问题描述】:
我正在制作一个带有套接字的客户端/服务器对来来回发送和接收数据。当我在家中使用两台单独的机器作为客户端/服务器时,它可以正常工作。数据被传输等等。
但是,今天当我在当地的一家咖啡店工作时(第二杯,如果相关的话),这不起作用。我不断收到以下错误:连接超时,或者没有到主机的路由。
下面是相关代码:
服务器:
public class TestServer {
public static void main(String[] args) throws Exception {
TestServer myServer = new TestServer();
myServer.run();
}
private void run() throws Exception {
ServerSocket mySS = new ServerSocket(9999);
while(true) {
Socket SS_accept = mySS.accept();
BufferedReader myBR = new BufferedReader(new InputStreamReader(SS_accept.getInputStream()));
String temp = myBR.readLine();
System.out.println(temp);
if (temp!=null) {
PrintStream serverPS = new PrintStream(SS_accept.getOutputStream());
serverPS.println("Response received");
}
}
}
}
客户:(相关部分)
//sends a command to the server, and returns the server's response
private String tellServer(String text) throws Exception {
mySocket = new Socket("192.168.0.XXX", 9999); //the IPv4 address
//use the socket's outputStream to tell stuff to the server
PrintStream myPS = new PrintStream(mySocket.getOutputStream());
myPS.println(text);
//the following code will get data back from the server
BufferedReader clientBR = new BufferedReader(new InputStreamReader(mySocket.getInputStream()));
String temp = clientBR.readLine();
if (temp!=null) {
return temp;
} else {
return "";
}
}
这非常简单。再次,如前所述,在我的互联网上它工作正常 - 只需执行 ipconfig,获取 IPv4 地址,然后将其放入客户端。在有免费无线网络的咖啡店里,它不起作用。为了以防万一,我什至摆弄了许多不同的端口。
感谢您的帮助,我是套接字新手,发现这令人困惑。
【问题讨论】:
标签: java sockets networking