请问客户端的Socket如何知道和服务器端的Socket是否连接呢?
现在用一个方法如下:
try
{
//发送0字节数组,测试实时连接状态
byte[] testByte = new byte[1];
mClientSocket.Blocking = false;
mClientSocket.Send(testByte);
}
catch (SocketException ex)
{
// 10035 == WSAEWOULDBLOCK
if (ex.NativeErrorCode.Equals(10035))
return true;
else
return false;
}
finally
{
mClientSocket.Blocking = true;
}
可以实时监测Socket的状态,但是发现会导致有时候往服务器端发送数据,对方不能接收到。
不知道何解,在此求教。
现在用一个方法如下:
try
{
//发送0字节数组,测试实时连接状态
byte[] testByte = new byte[1];
mClientSocket.Blocking = false;
mClientSocket.Send(testByte);
}
catch (SocketException ex)
{
// 10035 == WSAEWOULDBLOCK
if (ex.NativeErrorCode.Equals(10035))
return true;
else
return false;
}
finally
{
mClientSocket.Blocking = true;
}
可以实时监测Socket的状态,但是发现会导致有时候往服务器端发送数据,对方不能接收到。
不知道何解,在此求教。
感觉发送0字节不是太好
常规的操作都是采用心跳方式,定时给服务器发送数据,一旦write失败就能获知