社区
网络编程
帖子详情
udp如何判断接包是否收到!
yjje
2006-03-15 06:06:39
在UDP中如何判断数据包是否完全接收.
如果没有接收用什么办法让重发!!!!!
...全文
432
7
打赏
收藏
udp如何判断接包是否收到!
在UDP中如何判断数据包是否完全接收. 如果没有接收用什么办法让重发!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
9731boy
2006-03-16
打赏
举报
回复
一般UDP的包要小于MTU的值.如果能正常接收,那一般都是正确收到的,如果需要重发,你需要自己定一些协议,
「已注销」
2006-03-16
打赏
举报
回复
=0。刚才说错了,
「已注销」
2006-03-16
打赏
举报
回复
recvform返回的值>0说明有数据接受完了
要重发的话,要自定义好协议,让发送方重复发就是了,
9731boy
2006-03-16
打赏
举报
回复
int n = 0;
chat buff[255];
do
{
n = fread(buff,sizeof(buff),1,fp);
if (n > 0)
{
buff[n] = '\0';
sendto(pm.PrimaryUDP,(const char*)buff,n,0,(const sockaddr*)&sender,sizeof(sender));
}
else
{
break;
}
}while(!feof(fp));
大概是这样了,我也知道能不能编译
quanbaoxiao
2006-03-16
打赏
举报
回复
可以要求对方对每一个发出的数据报返回一个确认,或者接受完指定的数据后发回确认。类似下面这样子:
创建一个工作线程:
CCriticalSection g_cs ;
DWORD WINAPI ThreadCheck(LPVOID lPvoid)
{
CMsg msg ;
while(1)
{
int rec = recvfrom(s , (char*)&msg , sizeof(msg) , ...) ;
if(msg.iType == UDPACK)
{
g_cs.Lock()
g_bAck = TRUE ;
g_cs.Unlock() ;
}
}
}
BOOL SendUDP()
{
while(1)
{
g_cs.Lock() ;
g_bAck = FALSE ;
g_cs.Unlock() ;
sendto(...) ;
Sleep(100) ;//等待返回确认
g_cs.Lock() ;
if(g_bAck==TRUE)
{
g_cs.Unlock() ;
break ;
}
g_cs.Unlock() ;
}
}
yjje
2006-03-16
打赏
举报
回复
do
{
fread(ch,sizeof(char),255,fp);
sendto(pm.PrimaryUDP,(const char*)&ch,sizeof(ch),0,(const sockaddr *)&sender,sizeof(sender));
//cout<<"发送数据中.."<<endl;
}while(!feof(fp));
我是用上面方法发送数据的, 请高手帮忙看看
yjje
2006-03-16
打赏
举报
回复
我是初学.听了不太明白可以给一个小例子吗.
谢谢!
tcp/
udp
接
包
COM口转发程序源码
分为服务端和客户端,实现了tcp、
udp
包
的收发,以及服务端
收到
tcp,
udp
包
时通过COM口转发到相连的客户端。
TCP、
UDP
协议详解(干货!!!)
TCP、
UDP
协议详解(干货!!!)
计算机网络 传输层 TCP和
UDP
协议
Re: 计算机网络 传输层 TCP和
UDP
协议# 传输层协议 TCP 和
UDP
的应用场景 要发送的内容多,需要将发送的内容分成多个数据
包
发送(TCP) 要发送的内容少,一个数据
包
就能发送全部内容(
UDP
)# 传输层协议和应用层协议之间的关系 传输层协议加一个端口号来标识一个应用层协议, 展示了传输层协议和应用层协议之间的关系# 使用TCP/IP筛选实现网络安全 防火墙设置与端口#
UDP
协议特点和报文格式
UDP
是无连
接
的:即发送数据之前不需要建立连
接
UDP
使用尽最大努力交付:即不保证可靠交付,因此主机不需要维持复杂的连
接
状态表# TCP 协议特点和报文格式先连
接
后释放;点对点;可靠传输;全双工通信;面向数据流七项标记位停止等待协议与改进的停止等待协议滑动窗口技术详解:确认Seq与选择确认SACK 超时重传时间:查询计算与自动调整 流量控制功能:点对点的流量控制 拥塞控制:相对整体网络环境而言;慢开始算法和拥塞避免算法 改进的拥塞控制:快重传和快恢复 三次握手建立TCP连
接
,四次挥手释放连
接
。# TCP 协议面临的攻击 SYN 攻击:捏造的源地址; LAND攻击:自己就是源地址# 通过抓
包
工具,查看以上报文格式# 习题详解
UDP
主要丢
包
原因及具体问题分析
文章来源:http://www.2cto.com/net/201311/254835.html
UDP
主要丢
包
原因及具体问题分析 一、主要丢
包
原因 1、
接
收端处理时间过长导致丢
包
:调用recv方法
接
收端
收到
数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的
包
可能丢失。对于这种情况可以修改
接
收端,将
包
接
收后存入一个缓冲区,然后迅速返回继续......
TCP与
UDP
的不同
接
包
处理方式
TCP与
UDP
的不同
接
包
处理方式1.
UDP
发
包
的问题问:
udp
发送两次数据,第一次 100字节 ,第二次200字节,
接
包
方一次recvfrom( 1000 ),
收到
是 100,还是200,还是300? 答:
UDP
是数据报文协议,是以数据
包
方式,所以每次可以
接
收100,200,在理想情况下,第一次是无论recvfrom多少都是
接
收到
100。当然,可能由于网络原因,第二个
包
先到的话,有可能是20
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章