回 帖 发 新 帖 刷新版面

主题:[讨论]请教一下Socket的一个机制

异步Socket接收数据中
mySocket.BeginReceive(bytes,0,512,0,ReceiveCallback,mySocket);投递异步接收事件
private void ReceiveCallback(IAsyncResult ar)
{
   Socket sock = (Socket)ar.AsyncState;
   int receiveLength = sock.EndReceive(ar);////关键点
}
在上面所指的关键点中,sock在此处阻塞,直到有数据接收
如果receiveLength =0;说明接收错误,也可能是Socket断开,此时可以加入断线处理机制。
那么,我想请教高手的是:
阻塞在此的线程是否能准确的判断远程Socket断开?是否远程Socket断开就会使阻塞在此的线程马上返回?我在网上查了很多资料,一直没寻到能准确判断Socket断线的方法。

回复列表 (共2个回复)

沙发

?怎么没人帮我啊

板凳

好久没有上来了.在CODEPROJECT当中有个TEST的开源代码你可以查一下.
另外你是不是想一直保持Socket 的连接?一般会定期去PING这个连接.

我来回复

您尚未登录,请登录后再回复。点此登录或注册