区别TCP和UDP

TCP:面向连接
    传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP:面向无连接
    用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

TCP创建流程:

服务器:

      创建一个socket,用函数socket(); 
  设置socket属性,用函数setsockopt();
  绑定IP地址、端口等信息到socket上,用函数bind(); 
  开启监听,用函数listen(); 
  接收客户端上来的连接,用函数accept(); 
  收发数据,用函数send()和recv(),或者read()和write(); 
  关闭网络连接; 
  关闭监听; 
客户端:
      创建一个socket,用函数socket(); 
  设置socket属性,用函数setsockopt();
  绑定IP地址、端口等信息到socket上,用函数bind();
  设置要连接的对方的IP地址和端口等属性; 
  连接服务器,用函数connect(); 
  收发数据,用函数send()和recv(),或者read()和write(); 
  关闭网络连接;


UDP创建流程:

服务器:
       创建一个socket,用函数socket(); 
  设置socket属性,用函数setsockopt();
  绑定IP地址、端口等信息到socket上,用函数bind(); 
  循环接收数据,用函数recvfrom(); 
  关闭网络连接;
客户端:
      创建一个socket,用函数socket(); 
  设置socket属性,用函数setsockopt();
  绑定IP地址、端口等信息到socket上,用函数bind();
  设置对方的IP地址和端口等属性; 
  发送数据,用函数sendto(); 
  关闭网络连接;

   TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。
  

越过山丘,才发现无人等候
阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页