首页 > 技术知识 > 正文

最近在重新学习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程序时的学习笔记记录,资料参考来源网络。

猜你喜欢