outputstream不按预期写入数据

时间:2017-04-28 11:56:06

标签: java outputstream flush

我的服务器看起来像这样:

package marshexample;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.net.ServerSocket;
import java.net.Socket;

public class marshServer {

private ServerSocket ses;
private Reader br;
private OutputStream os;

public marshServer() {

    StringBuilder sb = new StringBuilder();

    try  {
        ses = new ServerSocket(7824);
        Socket s = ses.accept();
        br = new InputStreamReader(s.getInputStream());
        char[] request = new char[6];
        int count = br.read(request);

        while (!sb.toString().contains("project")) {

            sb.append(new String(request, 0, count));
            count = br.read(request);
            System.out.println(sb.toString());
        }
        System.out.println(sb);

        os = s.getOutputStream();
        os.write("string from server".getBytes());
        os.write("empty line".getBytes());
        os.flush();


    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println(sb);

}}

问题是我必须添加字符串os.write(“empty line”.getBytes());为了使它正常工作。没有这个字符串,按摩不会完全发送给客户。 (与客户相同的情况)。那么为什么flush方法不能解决这个问题呢?谢谢你的任何想法!

0 个答案:

没有答案