最近在重新学习Linux下的socket网络编程,写到了UDP和TCP两种协议的服务器和客户端,收获良多,觉得应该记录下来,便于自己日后的复习。
首先TCP和UDP都是OSI模型中的运输层中的协议。 TCP提供可靠的通信传输,面向连接,发送数据之前需要建立连接。 UDP用于让广播和细节控制交给应用的通信传输,非面向连接,故在发送数据前不需要建立连接。
因为连接传输的关系所以TCP传输的数据不丢失,不重复,按顺序发送且保证抵达。 而UDP无连接,只管发不管到,在安全方面上不如TCP,UDP更适合实时性很高且消息小的通信程序,它的消息重复发送,不用等待确认,在网络非常稳定的条件环境下,udp几乎不会出现问题,如果极度要求性能,可以考虑。
在编程上,服务器端: TCP: 1、创建一个socket; 2、设置socket属性; 3、绑定IP地址、端口等信息到socket上; 4、listen()开启监听; 5、accept()接收客户端来的连接; 6、收发数据,用函数send()和recv(),或者read()和write(); 7、关闭网络连接; 8、关闭监听; UDP: 1、创建一个socket; 2、设置socket属性; 3、绑定IP地址、端口等信息到socket上; 4、循环接收数据,用函数recvfrom(); 5、关闭网络连接;
编程上的区别UDP的编写比TCP程序要简单的多,只要建立的SOCKET且绑定端口信息与IP,就可以直接进行收发。
在客户端: TCP 1、创建一个socket; 2、设置socket属性;* 3、绑定IP地址、端口等信息到socket上; 4、设置要连接的对方的IP地址和端口等属性; 5、连接服务器,用函数connect(); 6、收发数据,用函数send()和recv(),或者read()和write(); 7、关闭网络连接; UDP: 1、创建一个socket; 2、设置socket属性; 3、绑定IP地址、端口等信息到socket上; 4、设置对方的IP地址和端口等属性; 5、发送数据,用函数sendto(); 6、关闭网络连接;
客户端也是如此,不需要建立连接。
本篇是编写TCP与UDP程序时的学习笔记记录,资料参考来源网络。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:(学习记录)UDP和TCP的区别 https://www.yhzz.com.cn/a/15335.html