网络流问题

时间:2011-04-07 07:42:52

标签: c# .net

我有一个多线程的服务器。这是我的服务器连接:

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();收到错误消息,说明以下内容:screenshot

它有什么用?

1 个答案:

答案 0 :(得分:2)

有时远程主机会重新启动,或者用户会终止客户端程序,或者路由器重新启动会丢失其状态并丢弃他们过去使用的所有连接。

处理客户端断开连接只是编程可靠软件的一部分,您应该通过清理为客户端存储的任何状态并继续前进来处理此System.Net.Sockets.SocketException

当然,如果您还编写了客户端软件并且您的用户说正在提供类似的错误消息,那么您应该进一步调查。 :)