0
当我启动服务器和客户端时,服务器无法接收到在客户端键入的单词。 我希望服务器显示来自客户端的消息。但服务器似乎挂在“bf.readLine()”上。我不知道为什么...以下代码 ...插座故障
Server代码:
ServerSocket ss = new ServerSocket(11111);
System.out.println("current port:"+ss.getLocalPort());
Socket s = ss.accept();
System.out.println("remote port:"+s.getPort());
BufferedReader bf = new BufferedReader(new InputStreamReader(s.getInputStream()));
while(true)
{
String str = bf.readLine();
System.out.print(s.getPort()+": ");
System.out.println(str);
if ("bye".equals(str))
break;
}
,然后客户端代码:
Socket s = new Socket("127.0.0.1",11111);
System.out.println("connected to remote server:"+s.getPort());
System.out.println("My port:"+s.getLocalPort());
PrintWriter pw = new PrintWriter(s.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
Scanner in = new Scanner(System.in);
while (true)
{
System.out.print("I said: ");
String l = in.next();
pw.write(l);
pw.flush();
System.out.println("Echo~~~~"+l);
}
尝试使用[PrintWriter](http://download.oracle.com/javase/1.4.2/docs/api/java/io/PrintWriter.html).println(l)。 – Sajid 2011-04-11 05:34:33
我假设你的意思是'readLine()' – 2011-04-11 05:35:31
@PgygyZhu,简而言之,将'pw.write(l);'改为'pw.println(l);' – 2011-04-11 05:37:29