linux udp 如何发数据包 我要发送一个5M左右的数据,如何实现分片发送 或者分包发送??

如题所述

这个- - 肯定得自定义私有报文头,然后组装了。
感觉楼主好像还是新手,很难简单讲清楚啊。

我们说说比如某个下载软件的udp私有协议,里面还设计了udp层的3次握手,丢包请求等等。
如果你不考虑丢包,不考虑身份验证,假设全部能收到,那么肯定也得设计一个顺序字段。

报文头(标志、序号)
把数据分割更1024字节的小段,每个小段都带着报文头出去,
接收端收到后,根据报文头的序号,剔除掉报文头,把后面每个小段的内容重新组合成5m的时间数据。

不知道你听明白了没有- - 如果有编程基础,实际编程中,不用讲自己就明白了,如果没有基础,的确挺难说明白的追问

这些我也明白,只是不知道如何把一段数据分割成若干个段,和服务器接收这么多段后如何再把这些段拼接在一起。 报文头和丢包的处理我多少还是有思路解决的。

追答

- - 实现这个不是比理解更容易吗?如何拼接?不就是memcpy每个小块到一个缓冲区的不同位置里面麽。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-11
分片发送的 不需要你自己设置默认的分片MTU值为1500

...我要发送一个5M左右的数据,如何实现分片发送 或者分包发送??_百度知...
如果你不考虑丢包,不考虑身份验证,假设全部能收到,那么肯定也得设计一个顺序字段。报文头(标志、序号)把数据分割更1024字节的小段,每个小段都带着报文头出去,接收端收到后,根据报文头的序号,剔除掉报文头,把后面每个小段的内容重新组合成5m的时间数据。不知道你听明白了没有- - 如果有编程...

tcp 发送大5m数据需要多大缓冲区
一个应用程序可以通过打开SO_KEEPALIVE选项,使得WINDOWS套接口实现在TCP连接情况下允许使用“保持活动”包。一个WINDOWS套接口实现并不是必需支持“保持活动”,但是如果支持的话,具体的语义将与实现有关,应遵守RFC1122“Internet主机要求-通讯层”中第 4.2.3.6节的规范。如果有关连接由于“保持活动”而失效,则进行中的...

相似回答