socket编程 recv()问题

Iceboll Iceboll 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用recv()接收数据时,总是出现如果后一次接收的数据小于前一次的,便出现前面是新的数据,然后新的数据后面却还接这前一次的数据,比如前一次接收的是“这是第一次的数据”,第二次接收的本应该是“第二次”,但是现实出来的却是“第二次一次的数据”,调试过发送过来的数据没问题,接收的是一个线程,代码如下:
DWORD WINAPI CChatClientDlg::recvThread(LPVOID lpparameter){
SOCKET srvSocket=((RECVPARAM *)lpparameter)->socket;
HWND hwnd=((RECVPARAM *)lpparameter)->hwnd;
delete lpparameter;
int ret=0;
char recvBuf[MAX_PATH];

//Receive message from server
while(true){
ret=recv(srvSocket,recvBuf,MAX_PATH,0);
if(ret == 0 || ret == SOCKET_ERROR){
break;
}
::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)recvBuf);
}
return 0;
}
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
Iceboll
C++ 语言 65,214 成员 250,514 内容