本文主要是介绍断网后,socket/send依然发送成功,怎么办,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
新建socket,connect()也成功了,一直发送数据成功。
我现在拔掉,网线,指望出错,然后重新链接。结果send()一直成功。怎么办?
- 办法1(无效):设置缓冲区长度
int nBuffLen = 0;
int nRet = setsockopt(new_socket, SOL_SOCKET, SO_SNDBUF, (char *)&nBuffLen , sizeof( int ));
- 办法2(无效):设置SO_SNDTIMEO
struct timeval tv;tv.tv_sec = 3;tv.tv_usec = 0;setsockopt(new_socket, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
- 办法3(有效):设置SO_RCVTIMEO
struct timeval tv;tv.tv_sec = 3;tv.tv_usec = 0;setsockopt(new_socket, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
也就是在recv处进行判断。
这篇关于断网后,socket/send依然发送成功,怎么办的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!