用于在服务器的套接字中写入的OutputStreamWriter有什么问题?

时间:2014-01-28 05:43:57

标签: java sockets io

我正在尝试学习套接字编程。我使用InputStreamReaderBufferedReader编写了客户端,我读取了服务器发送的消息。 对于服务器,如果我使用PrintWriter方法编写print它可以使用write方法not,为什么? OutputStreamReadernot 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("...........");

2 个答案:

答案 0 :(得分:3)

我假设您在客户端readLine()上使用BufferedReader方法。所以我的猜测是,当您在服务器上使用write()方法时,您不会编写任何换行符。因此,客户端永远不会到达终点。每当您调用PrintStream方法时,PrintWriterprintln()都会为您添加换行符。

当然,没有任何代码甚至是对问题的描述,都很难肯定。

答案 1 :(得分:0)

每次要通过out.write(msg)发送部分数据时,必须使用out.flush()。