networkstream对象read()时挂了怎么回事?
服务器端:
int listenPort = 1987;
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
TcpListener listener = new TcpListener(ipAddress, listenPort);
listener.Start();
while(true)
{
try
{
Socket socket = listener.AcceptSocket();
clientSocket = socket;
clientService = new Thread(new ThreadStart(ServiceClient));
clientService.Start();
}catch(Exception ex){
Console.WriteLine(ex.ToString());
}
}
客户端:
TcpClient clientsocket = new TcpClient("127.0.0.1", 1987);
NetworkStream ns = new NetworkStream(clientsocket.Client);
Byte[] bytes = new Byte[1024];
ns.Read(bytes, 0, bytes.Length);
客户端执行到ns.Read(bytes, 0, bytes.Length);时,客户端死掉了。
[解决办法]
不是客户端死掉了,而是read方法在没有数据可读时会阻塞,正如console.readline在没有输入会阻塞一样
[解决办法]