随想录(udp经验总结)

栏目: 服务器 · 发布时间: 6年前

内容简介:【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】最新在实现udp方面的软件,有一些经验需要总结一下,以供日后参考。1、udp协议简单,共8个byte,分别是源端口、目的端口、长度、校验和。

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

最新在实现udp方面的软件,有一些经验需要总结一下,以供日后参考。

1、udp协议简单,共8个byte,分别是源端口、目的端口、长度、校验和。

2、udp没有超时重传、拥塞控制,所以单次传输的最大长度就是1个short字长。

3、udp可以绑定固定源端口,这是tcp没有办法做到的。

4、单次udp收到的报文就是你能处理的单次最大报文,不能像tcp一样循环接收。发包也是一样。

5、udp没有办法确认接收方是不是真的收到报文,如果需要自己添加ack机制。

6、udp发送的报文如果超过65536,必须分开发送,接收顺序不保证,可以自己实现序列号。

7、udp发送超过1480的报文,也会被ip自动分包。

8、udp比较适合视频、音频这种大数据量传输,即使丢失部分数据也可以接受。

9、udp比较适合一问一答模式,比如所有命令都是client发起,server只要及时处理就可以了。

注意:

学习udp最好的方式就是用 python 来学习,比如像这样,

ubuntu$ python
Python 2.7.13 (default, Dec 18 2016, 07:03:34) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>>> local=('0.0.0.0',10000)
>>> s.bind(local)
>>> remote=('0.0.0.0',20000)
>>> buffer='0123456789'
>>> s.sendto(buffer,remote)
10
>>> s.close()
>>>

以上所述就是小编给大家介绍的《随想录(udp经验总结)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++ Primer 中文版(第 5 版)

C++ Primer 中文版(第 5 版)

[美] Stanley B. Lippman、[美] Josée Lajoie、[美] Barbara E. Moo / 王刚、杨巨峰 / 电子工业出版社 / 2013-9-1 / CNY 128.00

这本久负盛名的 C++经典教程,时隔八年之久,终迎来史无前例的重大升级。除令全球无数程序员从中受益,甚至为之迷醉的——C++ 大师 Stanley B. Lippman 的丰富实践经验,C++标准委员会原负责人 Josée Lajoie 对C++标准的深入理解,以及C++ 先驱 Barbara E. Moo 在 C++教学方面的真知灼见外,更是基于全新的 C++11标准进行了全面而彻底的内容更新。......一起来看看 《C++ Primer 中文版(第 5 版)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具