socket 精确的判断出网络是否连接
2010-07-29 10:52
309 查看
socket类的connected属性往往不能精确的判断出网络是否连接,下面这段代码能解决这个问题
/// <summary>
/// 是否已连接
/// </summary>
public virtual bool connected
{
get
{
try
{
//检查socket的状态是否可读
if(m_socket.connected && m_socket.poll(0, selectmode.selectread))
{
byte[] abyte = new byte[1];
//因为tcp/ip协议无法精确的判断网络是否可用
//试读一个字符,peek参数指定读取的字符不会从缓冲区中移除
//如果可读则表示连接可用
if(m_socket.receive(abyte, 0, 1, socketflags.peek) != 0)
return true;
close("disconnected.");
return false;
}
}
catch(socketexception e)
{
onexception(e);
}
return m_socket.connected;
}
}
/// <summary>
/// 是否已连接
/// </summary>
public virtual bool connected
{
get
{
try
{
//检查socket的状态是否可读
if(m_socket.connected && m_socket.poll(0, selectmode.selectread))
{
byte[] abyte = new byte[1];
//因为tcp/ip协议无法精确的判断网络是否可用
//试读一个字符,peek参数指定读取的字符不会从缓冲区中移除
//如果可读则表示连接可用
if(m_socket.receive(abyte, 0, 1, socketflags.peek) != 0)
return true;
close("disconnected.");
return false;
}
}
catch(socketexception e)
{
onexception(e);
}
return m_socket.connected;
}
}
相关文章推荐
- socket.sendUrgentData判断网络远端是否断开连接
- java中判断socket网络远端是否断开连接
- java中判断socket网络远端是否断开连接
- java中判断socket网络远端是否断开连接
- socket.sendUrgentData判断网络远端是否断开连接
- java中判断socket网络远端是否断开连接
- java中判断socket网络远端是否断开连接
- java中判断socket网络远端是否断开连接
- socket.sendUrgentData判断网络远端是否断开连接
- Android判断网络是否连接
- Android中判断网络连接是否可用及监控网络状态
- 判断网络是否连接或是否连接wifi
- Js - 判断用户是否上网(连接网络) - HTML5在线、离线online的使用
- shell判断网卡是否连接网络
- android中判断网络连接是否可用
- 封装工具类,判断是否连接网络,请求数据
- 判断Android设备是否连接网络
- 判断网络连接是否已开 true 已打开 false 未打开
- 判断本地的电脑是否与Internet网络连接
- WindowMobile如何判断网络有没连接和如何判WebService服务器地址是否正确(wifi有无打开)