问题描述
- accept在while(true)里面变成了非阻塞的
-
while(cnt<244444){
SOCKET nSock=accept(server,&ClientAddr,&len);
cnt++;如果这样写,就是非阻塞的,会一直返回一个INVALID_SOCKET,但是如果 把accept写在while的外面,就是阻塞的,(这个while是在子线程里面的,如果是在主线程就不会有这个问题)求大神解答一下!
解决方案
是不是其他地方设置了server句柄属性来控制阻塞非阻塞
解决方案二:
用 perror("accept") 看看出了什么错
解决方案三:
yong perror("accept") 看看出了什么错
解决方案四:
用 perror("accept") 看看出了什么错
解决方案五:
不行啊,perror("accept") 返回是 no errror, 但是accept 还是非阻塞的,每次返回一个INT_MAX 的SOCKET。
解决方案六:
试出来了,在主线程中,第一次是阻塞的,但是连接成功以后,就变成非阻塞了
解决方案七:
我怀疑是这样:
我在server上开了一个端口,然后用
while(true){
nSock=accept(server,NULL,NULL);
handl=CreateThread(NULL,0,RevcAndSend,&server,0,NULL);
}
去处理,
然后在client上面创建连接,第一个可以成功,第二个就失败了,是说
同一个client可以和一个server的同一个端口同时创建一个连接么,我试了不同的端口是可以的
时间: 2024-10-25 07:22:29