VC++ 6.0 socket 判断网络通断(是否能上INETRNET)
1, 要求如果网络不通,在超时的情况下,不能多余5秒做出反应.
我找个很多例子都不能控制超时
知道的朋友贴个例子出来
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORd(2,2), &wsaData);
if (iResult != NO_ERROR)
printf("Error at WSAStartup()\n");
SOCKET ConnectSocket;
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ConnectSocket == INVALID_SOCKET) {
printf("Error at socket(): %ld\n", WSAGetLastError());
WSACleanup();
return;
}
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr("119.75.213.61");
clientService.sin_port = htons( 80 );
if(connect(ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService)) == SOCKET_ERROR) {
AfxMessageBox("连接失败");
WSACleanup();
return;
}
else
{
AfxMessageBox("连接成功");
WSACleanup();
return;
}
大实帮看下这个代码,现有断网他也提示连接成功,这是哪里出问题了
还有想实现5秒超时,就显停止连接,提示连接不成功
VC++ 6.0 socket 判断网络通断(是否能上INETRNET)
答案:3 悬赏:10
解决时间 2021-03-24 18:08
- 提问者网友:我稀罕你
- 2021-03-23 20:55
最佳答案
- 二级知识专家网友:许你一世温柔
- 2021-03-23 22:20
socket应该可以设置连接超时的。
把socket设置成非阻塞socket, connect以后,在用select等待结果,
select可以设置超时的。
把socket设置成非阻塞socket, connect以后,在用select等待结果,
select可以设置超时的。
全部回答
- 1楼网友:茫然不知崩溃
- 2021-03-24 00:09
Sleep(5000);
然后ping一下你连的目标。
- 2楼网友:狙击你的心
- 2021-03-23 22:54
能啊 聊天时 如果 没有发出信号 就说明你掉了
再看看别人怎么说的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯