1.今天做了个Socket的测试,Socket Connnectioned=false  但是服务端居然还能够收到对方send过来的数据??奇怪???

解决方案 »

  1.   

    对,以前做过,这个属性有问题,要想判断socket是否可用判断receive函数返回值,返回0代表断socket断开。
      

  2.   

    C# Socket Class Reference 
      

  3.   

    首先,Socket类的Connected属性只表示最后一次I/O操作的状态,如果这之后[连接的另一方]断开了,它还一直返回true, 除非你再通过socket来发送数据。所以通过个属性来判断是行不通的!可以由Socket.Receive()方法的返回值来判断,断开时,它返回结果告知只读了0个字节
      

  4.   

    开玩笑,如果没有断开,你使用Receive的话,不要被阻塞?
      

  5.   

    弱弱的说一句,建立socket不就是为了send和receive东西么