Recv接收数据时,为什么会接收到相同的数据

wxliangzyt 2013-12-18 01:07:17
IOCP每300毫秒从数据库中,取出一数据,向客户端发送。
客户端接收的代码

.................................
while(pcs->m_thexit)
{
memset(szBuf,0,Recv_BUF_SIZE);
iRet = recv(pcs->m_ServerSocket,szBuf, Recv_BUF_SIZE, 0);//iRet = recv(pcs->m_ServerSocket,(char*)szBuf, Recv_BUF_SIZE, 0);
if (iRet>0)
{
memset(cprbf.buf,0,sizeof(cprbf.buf));
memcpy(cprbf.buf,szBuf,strlen(szBuf));
EnterCriticalSection(&m_pagespilt);
pcs->m_revpage.AddTail(cprbf);
LeaveCriticalSection(&m_pagespilt);
continue;
}
........................................

我将接收到的数据,压入链表中,专门开一个线程,来解释链表中的数据,

服务器:线路是电信的(地点北京A)

如果我本机(电信的,地点北京B)用客户来接收,能完整且接收的数据,没有重复的

如果把客户端,放到(联通,地点北京C)来接收数据,接收的数据,会出现大量重复的,且数目不少了一些

全是外网来测试的,为什么会出现这种情况,我应该怎么处理了
...全文
322 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zilaishuichina 2013-12-19
  • 打赏
  • 举报
回复
memcpy(cprbf.buf,szBuf,strlen(szBuf)); 这个strlen不对吧 他是遇到0就结束了 lz确定你发送的数据包里面不包含0 ?
oyljerry 2013-12-19
  • 打赏
  • 举报
回复
会不会是联通的网络问题等

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧