2014-02-12 17 views
0

这是我的服务器端代码,它将数据写入客户端。服务器仅在Stream Writer Auto Flush给出true时才将消息写入客户端。任何人都可以告诉我为什么

  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"); 
      } 


     } 

服务器端代码将数据写入到客户端只被赋予自动冲洗时true.Can有人请解释

回答

1

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

相关问题