我做了一个使用UDP通讯的C/S程序,套接字是用2.2版本,接受发送用的是WSARecvFrom WSASendTo
使用中发现当客户端连续发送几十上百个包给服务端后,就会中断1分钟左右,期间服务器收不到此客户端的包
但是服务器可以收到其它连接的包服务端采用线程,以阻塞方式收包,没有采用异步
因为可能要和外网的其他内网通讯,发送接受使用同一个套接字尝试过关闭套接字上的发送缓冲和接受缓冲,不能解决问题高分求助,请高手帮忙
使用中发现当客户端连续发送几十上百个包给服务端后,就会中断1分钟左右,期间服务器收不到此客户端的包
但是服务器可以收到其它连接的包服务端采用线程,以阻塞方式收包,没有采用异步
因为可能要和外网的其他内网通讯,发送接受使用同一个套接字尝试过关闭套接字上的发送缓冲和接受缓冲,不能解决问题高分求助,请高手帮忙
解决方案 »
- MFC 到底怎末了??调了一下午,疯掉了。。静态文本都创建不出来。。。。。。。。。
- vc下如何读取bin文件?
- 安装程序过程中会弹出一个对话框,我想模拟用户点击这个确定按钮,如何实现?急!!!!
- 一个优秀的处理各种图片格式的类,能对图片进行各种操作,但我不知怎样在我工程中使用
- 紧急求助,关于分析dump文件
- VC程序报错处理
- char *赋值给cstring,但char *中包含结束符,想要再赋值的过程中把结束符也赋值过去
- 两个Timer 开启一个关闭另一个 为什么会时间错乱
- ???关于删除自身的再度探讨???(144分)
- 菜鸟提问:程序对消息响应不正常,如何调试?
- 我要做一个简单的机票订票系统
- 菜鸟请教 extern和string的问题!
所以不管在LAN,WAN里都存在丢包,丢包的可能性跟具体的网络环境有关。
if(WSASendTo(sockettol,&wsabuf,1,&dwSend,0,(sockaddr*)&tecfrom,sizeoftecfrom,NULL,NULL)== SOCKET_ERROR)
{
int err=WSAGetLastError();
char dd[100]={0};
sprintf(dd,"数据发送错误:%d--%06d#%s\r\n",err,ntohs(tecfrom.sin_port),inet_ntoa(tecfrom.sin_addr));
}[/align]