网络基础——TCP与UDP的对比

  • TCP与UDP的基本区别

(1)基于连接与无连接;

(2)TCP要求系统资源较多,UDP较少;

(3)UDP程序结构较简单;

(4)面向字节流(TCP)与面向数据报(UDP);

(5)TCP能保证传输的可靠性,UDP不能;

(6)TCP能保证数据的按序到达,UDP不能。

  • TCP

TCP编程的服务器端一般步骤是:

(1)创建一个socket,用函数socket();

(2)设置socket属性,用函数setsockopt();

(3)用函数bind()绑定IP地址、端口等信息到socket上;

(4)用函数listen()开启监听;

(5)接受客户端上来的连接,用函数accept();

(6)收发数据,用函数send()和recv(),或者read()和write();

(7)关闭网络连接;

(8)关闭监听。

TCP编程的客户端一般步骤为:

(1)创建一个socket,用函数socket();

(2)设置socket属性,用函数setsockopt();

(3)用函数bind()绑定IP地址、端口等信息到socket上;

(4)设置要连接的对方的IP地址和端口等属性;

(5)连接服务器,用函数connect();

(6)收发数据,用函数send()和recv(),或者read()和write();

(7)关闭网络连接。

  • UDP

与TCP相比,UDP编程步骤较为简单。

UDP编程的服务器端一般步骤为:

(1)创建一个socket,用函数socket();

(2)设置socket属性,用函数setsockopt();

(3)用函数bind()绑定IP地址、端口等信息到socket上;

(4)循环接收数据,用函数recvfrom();

(5)关闭网络连接。

UDP编程的客户端一般步骤为:

(1)创建一个socket,用函数socket();

(2)设置socket属性,用函数setsockopt();

(3)用函数bind()绑定IP地址、端口等信息到socket上;

(4)设置对方的IP地址和端口等属性;

(5)发送数据,用函数sendto();

(6)关闭网络连接。

  • TCP与UDP区别总结
(1)TCP面向连接,即发送数据前需要先建立起连接;UDP是无连接的,即发送数据前不需要建立连接。

(2)TCP保证可靠性,即通过TCP连接传输的数据,无差错、不丢失、不重复,且能保证按序到达;UDP不保证可靠性。

(3)TCP面向字节流,可以按照任意长度发送和接收;UDP面向数据报,即UDP传输数据时以报文为基本单位整收整发,不存在“半个”的现象。

(4)每一条TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的交互通信。

(5)TCP的首部占20个字节;UDP首部占8个字节。

(6)TCP的逻辑通信信道是全双工的可靠信道;UDP是不可靠信道。





猜你喜欢

转载自blog.csdn.net/cecilia3333/article/details/80410529