这是我的服务器端代码,用于将数据写入客户端。
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时,服务器端代码才会将数据写入客户端。任何人都可以解释
答案 0 :(得分:1)
因为它会自动刷新,当然。如果您查看Javadoc,您会看到当数据包含换行符时会发生autoflush。如果您未设置此项,则在您自己致电flush()
或自行关闭OutputStream
或Writer
之前,数据不会被刷新。