tcp局域网发送数据 速度在750bk左右 为什么程序执行10中左右就会死掉 程序不在发送和接受数据了!发送代码如下:char msg[50688]; int dd=0,cc=0;////接受
while(cc<50688)
{
dd=Receive(pd->msg+cc,50688-cc);
cc=cc+dd;
}
int dd=0,cc=0;////发送
while(cc<50687)
{
dd=Sand(pd->msg+cc,50688-cc);
cc=cc+dd;
}各位大哥有谁做过tcp或者udp的,帮忙解说一下,为什么程序长时间运行会有问题,是不是程序换成udp转送就没问题了!
小弟的分数有限,不要建议。TCP/IP
while(cc<50688)
{
dd=Receive(pd->msg+cc,50688-cc);
cc=cc+dd;
}
int dd=0,cc=0;////发送
while(cc<50687)
{
dd=Sand(pd->msg+cc,50688-cc);
cc=cc+dd;
}各位大哥有谁做过tcp或者udp的,帮忙解说一下,为什么程序长时间运行会有问题,是不是程序换成udp转送就没问题了!
小弟的分数有限,不要建议。TCP/IP
解决方案 »
- realtek禁用前面板插孔检测到底动了啥 ?
- ShellExecute() 参数传递问题
- TCP服务器端程序自动退出问题
- vs2005中的Object Identity While Debugging如何设置?
- *********** UDP广播 传送多个文件到几十台机子上 怎么写???
- 程序里最多能建立多少个Socket客户端啊?
- 用纯C++开发ActiveX控件时读写文件出错
- 火急!!!100分请教自定义结构传递问题
- 紧急求救,请问如何使用另一个项目的资源??急、急、急!
- 你们有没有买Visual Studio β2中文企业版(4CD)?
- 有关注册表打开和关闭的问题
- 求教vc控制台程序 系统自启动方法
还有意外断开的情况什么的.
还有一次发那么大, 也是不稳定因素之一.
总之多做错误处理. TCP本身是稳定的, 其它要靠你自己来保证了
我在原来的代码上,没接受一次,都判断Receive()函数的返回值是否大于0;
dd=0;
cc=0; while(cc<50688)
{
dd=Receive(pd->ok+cc,50688-cc);
if(dd<1)
{
pd->MessageBox("rev false!");
}
cc=cc+dd;
}
可是程序出错时,没有MessageBox的对话框弹出!这些代码是写在void CMyLsn::OnReceive(int nErrorCode)里的。是接受发来是每一帧视频数据的函数。
(class CMyLsn : public CSocket) CMyLsn继承CSocket。
视频的一帧大小是50688。
今天突然发现程序在win7 和xp 下运行有些不同!
win7下 程序运行10分钟左右死掉;
xp下第一次运行10秒就死,运行完第一次之间运行第二次可能不到5秒死;是不是因为tcp发送的数据过大,网卡缓存数据冗余啊? 如何在程序里,通知网卡清零缓存。