我有一个多线程的服务器。这是我的服务器连接:
while (true) {
client = this.tcpListener.AcceptTcpClient();
sThread a = new sThread(form1, listaThreads);
lock(Program.lockThreads) {
listaThreads.Add(a);
}
Thread clientThread =
new Thread(new ParameterizedThreadStart(a.HandleClientComm));
clientThread.Start(client);
}
在我的sThread类中,我有以下代码:
public void HandleClientComm(object client)
{
String a = "";
try // nu uita sa pui inapoi!
{
tcpClient = (TcpClient) client;
clientStream = tcpClient.GetStream();
sr = new StreamReader(clientStream);
sw = new StreamWriter(clientStream);
a = sr.ReadLine();
...
但在某些情况下,我在a = sr.ReadLine();
收到错误消息,说明以下内容:
它有什么用?
答案 0 :(得分:2)
有时远程主机会重新启动,或者用户会终止客户端程序,或者路由器重新启动会丢失其状态并丢弃他们过去使用的所有连接。
处理客户端断开连接只是编程可靠软件的一部分,您应该通过清理为客户端存储的任何状态并继续前进来处理此System.Net.Sockets.SocketException
。
当然,如果您还编写了客户端软件并且您的用户说它正在提供类似的错误消息,那么您应该进一步调查。 :)