C++编写的多线程通信程序,代码编译没有错误(vc),可是服务端与客户端就是连接不上,望高手解答

2025-12-13 09:42:19
推荐回答(3个)
回答1:

我调试了你的代码,你的代码是没有问题的,虽然不能使用,但是正常的Socket通讯流程是可以进行的。而且我调试的时候服务器和客户端代码都返回通讯成功。accept()返回的socket为124,connect返回0,说明通讯是正常的。你需要从操作系统环境找原因了。

 

调试截图如下:

 

服务器端accept返回socket为124

 

 

 

客户端connect返回0

 

 

回答2:

SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
hThread=CreateThread(NULL,0,AnswerThread,NULL,0,&dwThreadID);
if(hThread==NULL)
cout<<"create answerthread failed;"<上面一段做一个while循环,已让线程函数操作,如果按照你目前的做法,创建线程成功后,主线程就立即返回了,所以资源都会释放,所以你创建的线程根本不会运行.

另:你的线程应该使用recv( sockSrv, buffer, 1024, 0 )来接收客户端的信息,使用send( sockSrv, data, sizeof( data )来想客户端发送数据,表明你已经登录成功.

回答3:

会不会是防火墙的原因