我使用的是C语言中的基本套接字函数,如下所示:
int res = connect(sock_fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_in));connect将立即返回,连接已按预期建立。connect将立即返回,错误号为“ is connect我的笔记本电脑已连接到无法直接访问互联网的wifi网络(需要登录操作或其他操作),connect将在返回前20秒左右阻塞,错误号为"connection 可以通过设置sock_fd非阻塞来解决,我想知道为什么在第三种情况下connect需要这么长时间才返回连接错误?
发布于 2015-02-08 12:02:47
在第二种情况下(网络离线),操作系统知道它是离线的,因此网络库可以立即发出故障信号。
在第三种情况下(网络在线,但无法连接到互联网),操作系统认为它是在线的,但无法提前知道连接不会成功。实际故障模式取决于您所连接的网络的性质:
https://stackoverflow.com/questions/28390017
复制相似问题