【发布时间】:2011-11-25 22:55:00
【问题描述】:
我创建了一个简单的客户端服务器套接字程序并发送一个字符串 a|b|c|* 并且客户端没有收到它。客户端在另一台机器上。
服务器代码。
String format = "a|b|c|*";
ServerSocket ss = new ServerSocket(2222);
System.out.println("Server Started.");
while (true) {
Socket s = ss.accept();
System.out.println("Connection accepted.");
InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
PrintStream ps = new PrintStream(s.getOutputStream());
ps.println(format);
ps.flush();
System.out.println("Format sent.");
}
客户端
try {
Socket s = new Socket("192.168.0.71", 2222);
// step 3: Get I/O streams
InputStream is = s.getInputStream();
InputStreamReader isr= new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String format = br.readLine();
System.out.println(format);
} catch(Exception ex){
System.out.println(ex.getMessage());
}
当我在同一台机器上创建客户端时,它正在接收字符串,而当我将此字符串传递给另一台机器客户端时,它没有接收到它。
【问题讨论】:
-
会发生什么?有没有例外?它是否连接但未获取任何数据?
-
@Peter,是的,它确实连接但没有获取任何数据。
-
当你使用telnet到主机和端口,在同一个盒子和另一个盒子上,你得到什么?
telnet 192.168.0.71 2222 -
并且没有这样的例外。当我在我的机器上运行客户端时,它确实接收到数据。当我在另一台机器上运行客户端时没有获取数据。
-
当我远程登录时,它会显示我从服务器发送的字符串。