我正在尝试学习套接字编程。我使用InputStreamReader
和BufferedReader
编写了客户端,我读取了服务器发送的消息。
对于服务器,如果我使用PrintWriter
方法编写print
它可以使用write
方法not
,为什么?
OutputStreamReader
为not at all useful
,因为它没有print
方法,而write
,我在客户端没有收到消息。
提前致谢
编辑:客户:
Socket c=new Socket("143.22.165.27",6000);
InputStreamReader isr=new InputStreamReader(c.getInputStream());
BufferedReader br=new BufferedReader(isr);
String s=br.readLine();
System.out.println(s);
Srver
Socket sock=s.accept();
OutputStreamWriter out =
new OutputStreamWriter(sock.getOutputStream());
out.write("...........");
答案 0 :(得分:3)
我假设您在客户端readLine()
上使用BufferedReader
方法。所以我的猜测是,当您在服务器上使用write()
方法时,您不会编写任何换行符。因此,客户端永远不会到达终点。每当您调用PrintStream
方法时,PrintWriter
或println()
都会为您添加换行符。
当然,没有任何代码甚至是对问题的描述,都很难肯定。
答案 1 :(得分:0)
每次要通过out.write(msg)发送部分数据时,必须使用out.flush()。