仅当Stream Writer Auto Flush为true时,服务器才会将消息写入客户端。任何人都可以打电话给我?

时间:2014-02-12 12:29:20

标签: tcp streamwriter autoflush

这是我的服务器端代码,用于将数据写入客户端。

         try
         {
            IPHostEntry addr = Dns.GetHostEntry(Dns.GetHostName());
            IPAddress localIP = 
             addr.AddressList.Where(x => 
            x.AddressFamily      ==AddressFamily.InterNetwork).FirstOrDefault();
            //Console.WriteLine(localIP);
            listener = new TcpListener(localIP,2055);
            listener.Start();

            while (true)
            {
                s = listener.AcceptSocket();
                stream = new NetworkStream(s);
                strread = new StreamReader(stream);
                strwrite = new StreamWriter(stream);
                //strwrite.AutoFlush = true;
                strwrite.WriteLine("Hello");
                //    string recvmessage = strread.ReadLine();
                //    Console.WriteLine(recvmessage);
                //    if(string.IsNullOrEmpty(recvmessage))
                //    strwrite.WriteLine("Idealist");
            }


        }

只有当autoflush为true时,服务器端代码才会将数据写入客户端。任何人都可以解释

1 个答案:

答案 0 :(得分:1)

因为它会自动刷新,当然。如果您查看Javadoc,您会看到当数据包含换行符时会发生autoflush。如果您未设置此项,则在您自己致电flush()或自行关闭OutputStreamWriter之前,数据不会被刷新。