to xlander(阿富) :第二次时,send函数会返回网络crash的错误代码。在非阻塞socket中,send返回的是把数据拷贝到核心buffer的结果,具体发送的结果只能在下一次send时才能知道。
to xlander(阿富) :当然,只有在网络环境好时第二次Send才会马上有错误代码返回,网络环境不好时,可能需要Send好几次后才有,最极端情况,要把发送缓存全塞满了才会报错!!
To: vtable9999(肝肝肝肝) 谢谢,你很专业阿。
好问题!密切关注!因为下一步我也开始要着手SOCKET部分了。
// local system uses a modem to connect to the Internet. const DWORD INTERNET_CONNECTION_MODEM = 1; // local system uses a local area network to connect to //the Internet. const DWORD INTERNET_CONNECTION_LAN = 2; // local system uses a proxy server to connect to the Internet. const DWORD INTERNET_CONNECTION_PROXY = 4; // local system's modem is busy with a non-Internet connection. const DWORD INTERNET_CONNECTION_MODEM_BUSY = 8;BOOL TestConnectState() { DWORD dwConnectionTypes; dwConnectionTypes = INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY; return InternetGetConnectedState(&dwConnectionTypes, 0); }//每隔一定时间调用此函数看是否连接了网络 ================================================================曾经有一碗热辣辣的烧猪手面放在我面前,我没有珍惜,等到晾凉了之后才后悔莫及。
重载OnClose()函数试试!
用的是心搏函数:即没隔一秒发送紧急数据给对方,如果不回应则认为已经断开。
如果阻塞调用,recv将会一直阻塞,send将会成功,一直到阻塞!
如果非阻塞调用,recv将会返回WSAEWOULDBLOCK错误,send成功,直到返回WSAEWOULDBLOCK错误。建议使用超时控制,不推荐使用OOB数据,因为这样在正常情况下徒增通讯数据量
只能通过recv,send的返回值判断.Windows系统能知道网线拔了,恐怕也是应用了一些小技巧.
局域网的速度很快,一段时间内不能联络上其他PC,就可以认为是网线断了.
发第二次出错,程序有什么表现没有?比方说非法操作、或者死机什么。
前段时间有两个帖子刚讨论过这个问题,不过最后用的是ping
------------------------------------------------------------------
谁能给一下这个贴子的链结?
谢谢,你很专业阿。
const DWORD INTERNET_CONNECTION_MODEM = 1;
// local system uses a local area network to connect to //the Internet.
const DWORD INTERNET_CONNECTION_LAN = 2;
// local system uses a proxy server to connect to the Internet.
const DWORD INTERNET_CONNECTION_PROXY = 4;
// local system's modem is busy with a non-Internet connection.
const DWORD INTERNET_CONNECTION_MODEM_BUSY = 8;BOOL TestConnectState()
{
DWORD dwConnectionTypes; dwConnectionTypes = INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY; return InternetGetConnectedState(&dwConnectionTypes, 0);
}//每隔一定时间调用此函数看是否连接了网络
================================================================曾经有一碗热辣辣的烧猪手面放在我面前,我没有珍惜,等到晾凉了之后才后悔莫及。