我做一个登陆的功能,用connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
HANDLE hThread=CreateThread(NULL,0,RecvProc,NULL,0,NULL);
CloseHandle(hThread);建立一个线程用来接收服务端返回的数据.
客户端向服务端发送后,程序就卡住了,WSASend(m_socket,wsabuf,4,&BytesSent,0,NULL,NULL);调试运行到这句就不在运行下去,服务端一切正常,也反回了数据,可接收数据的线程也卡住不运行,没有任何反应,好像没接收到一样.这是怎么回事啊???
HANDLE hThread=CreateThread(NULL,0,RecvProc,NULL,0,NULL);
CloseHandle(hThread);建立一个线程用来接收服务端返回的数据.
客户端向服务端发送后,程序就卡住了,WSASend(m_socket,wsabuf,4,&BytesSent,0,NULL,NULL);调试运行到这句就不在运行下去,服务端一切正常,也反回了数据,可接收数据的线程也卡住不运行,没有任何反应,好像没接收到一样.这是怎么回事啊???
WSAGetLastError查看一下。
所以卡死在WSASend()函数上了。
当你结束进程时,就发送出去了。
可以设置成非阻塞模式,函数肯定会直接返回。
不过就算阻塞也难以理解为什么会一直阻塞。
建议可以先试试修改成非阻塞模式,是否就不会被卡住了。