1   while(true)
2   { 
3     try
4      {
5        bool blockstate = s.Blocking;
       
6        s.Blocking = false;
7        s.Send(msg,0,0);
     
     
8        if (s.Connected == false) throw new Exception("one client has shut down the connection");
9         s.Blocking = blockstate;
10        while (dataleft > 0)
11          {
          
            
12              int sent = s.Receive(msg, offset, dataleft, 0);
13              offset += sent;
14              dataleft -= sent;
15          }
16      }
17     catch (SocketException eX)
18      {
19         throw new Exception(eX.Message, eX);
20      }21    }
下断点调试的时候如果客户端正常关闭连接,程序一切正常,如果没有断点的话就会陷入死循环,就跟把5,6,7,8,9行去掉的效果一样,为什么呢,应该怎么解决?
在调试的时候还发现就算客户端正常关闭里连接,connected属性有时候竟然还会是true?