VC++ SOCKET问题
功能:服务端与客户端开发,一个服务端对应多个客户端,当有客户端来请求的时候,先接受客户端的求情信息,服务端进行保存与客户端的连接SOCKET,同时在反馈给客户端一个欢迎信息,告诉客户端已经成功建立连接,可以进行通信了,现在问题是出现了接受数据不全的问题,后来使用了循环多次接受,主要代码如下:CString strTemp;
int iResult=0;
do
{
char recvBuff[256];
iResult=recv(sockTemp,recvBuff,strlen(recvBuff)+1,0); //接受
if(iResult>0)
{
CString strTemp_;
strTemp_.Format("%s",recvBuff);
strTemp+=strTemp_;
writeLog(m_log,"接受数据:"+strTemp_);
}
else if(iResult==0)
{
writeLog(m_log,"数据接受完毕:"+strTemp);
}
else
{
writeLog(m_log,"数据出错");
}
}while(iResult>0);
上面代码是在一个线程里面循环监听客户端发来的数据,当客户端使用一个shutdown(1)的时候服务端可正常接受数据,之后数据会进入到线程的死循环中,来循环监听客户端的消息,现在的问题是上面的代码只有当客户端调用shutdown的时候才有效,而再次通信的时候就不正常了,
没了思路,求各位大神指点下思路,主要就是实现服务器与多客户端双向通信功能。
联系QQ:654054668