2014-02-12 4 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"); 
      } 


     } 

서버 측 코드의 autoflush이 주어질 때 그것은 물론, 자동으로 플러시됩니다 때문에 단지 true.Can 사람이

답변

1

을 설명해주십시오 클라이언트에 데이터를 기록합니다. Javadoc을 살펴보면 데이터에 개행 문자가 들어있을 때 autoflush가 발생한다는 것을 알 수 있습니다. 이 설정을 지정하지 않으면 직접 flush()에 전화하거나 OutputStream 또는 Writer을 직접 닫을 때까지 데이터가 플러시되지 않습니다.