`
jaesonchen
  • 浏览: 311389 次
  • 来自: ...
社区版块
存档分类
最新评论

TCP、UDP的区别

 
阅读更多

一、TCPUDP的区别

 基于连接与无连接 
  对系统资源的要求(TCP较多,UDP少) 
  UDP程序结构较简单 
  流模式与数据报模式 
  TCP保证数据正确性,UDP可能丢包 
  TCP保证数据顺序,UDP不保证 


  部分满足以下几点要求时,应该采用UDP 面向数据报方式

 网络数据大多为短消息 

 拥有大量Client 
  对数据安全性无特殊要求 
  网络负担非常重,但对响应速度要求高 


  具体编程时的区别 socket()的参数不同 
  UDP Server不需要调用listen和accept 
  UDP收发数据用sendto/recvfrom函数 
  TCP:地址信息在connect/accept时确定 
  UDP:在sendto/recvfrom函数中每次均 需指定地址信息 
  UDP:shutdown函数无效

二、man----socket
    通过查看socket的man手册可以看到socket函数的第一个参数的值可以为下面这些值: 
  Name Purpose 
  PF_UNIX, PF_LOCAL Local communication 
  PF_INET IPv4 Internet protocols 
  PF_INET6 IPv6 Internet protocols 
  PF_IPX IPX - Novell protocols 
  PF_NETLINK Kernel user interface device 
  PF_X25 ITU-T X.25 / ISO-8208 protocol 
  PF_AX25 Amateur radio AX.25 protocol 
  PF_ATMPVC Access to raw ATM PVCs 
  PF_APPLETALK Appletalk 
  PF_PACKET Low level packet interface

 

三、编程区别
     通常我们在说到网络编程时默认是指TCP编程,即用前面提到的socket函数创建一个socket用于TCP通讯,函数参数我们通常填为SOCK_STREAM。即socket(PF_INET, SOCK_STREAM, 0),这表示建立一个socket用于流式网络通讯。 
   SOCK_STREAM这种的特点是面向连接的,即每次收发数据之前必须通过connect建立连接,也是双向的,即任何一方都可以收发数据,协议本身提供了一些保障机制保证它是可靠的、有序的,即每个包按照发送的顺序到达接收方。 

  而SOCK_DGRAM这种是User Datagram Protocol协议的网络通讯,它是无连接的,不可靠的,因为通讯双方发送数据后不知道对方是否已经收到数据,是否正常收到数据。任何一方建立一个socket以后就可以用sendto发送数据,也可以用recvfrom接收数据。根本不关心对方是否存在,是否发送了数据。它的特点是通讯速度比较快。大家都知道TCP是要经过三次握手的,而UDP没有。 

  基于上述不同,UDP和TCP编程步骤也有些不同,如下: 
  TCP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt(); * 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、开启监听,用函数listen(); 
  5、接收客户端上来的连接,用函数accept(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接; 
  8、关闭监听; 

  TCP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置要连接的对方的IP地址和端口等属性; 
  5、连接服务器,用函数connect(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接;


  与之对应的UDP编程步骤要简单许多,分别如下: 
  UDP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、循环接收数据,用函数recvfrom(); 
  5、关闭网络连接; 

  UDP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置对方的IP地址和端口等属性; 
  5、发送数据,用函数sendto(); 
  6、关闭网络连接;

分享到:
评论

相关推荐

    tcpudp 2.1.1 TCP/UDP 调试软件

    - tcpudp_2.1.exe、tcpudp_2.1.1.exe:这两个文件是软件的执行程序,版本号不同可能代表软件的不同更新版本。 - 安装说明.txt:提供软件的安装步骤和注意事项,对于用户来说是非常重要的指南。 通过这款软件,你...

    tcpudp_2.1.1.exe tcp udp测试

    tcpudp_2.1.1.exe 可以监听tcp udp通信信息 ,使用简单 密码123456

    TcpUdp-v2.1.zip

    《TCP/UDP网络协议详解与TcpUdp-v2.1应用探索》 TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是互联网上最常用的两种传输层协议,它们各自具有独特的特性和应用场景。TCP是一种面向连接的...

    TCP UDP 区别.txt

    TCP UDP 区别.txt

    TCP与UDP区别(socket编程)

    TCP 与 UDP 区别(socket 编程) TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Datagram Protocol,用户数据报协议)是 TCP/IP 协议中的两个传输层协议,它们使用 IP 路由功能把数据包发送到...

    TCPUDP测试_tcpudp测试工具_

    `tcpudp测试工具`通常用于网络性能测试和故障排查,它可以模拟TCP或UDP客户端和服务器,帮助我们验证网络连接的可靠性、速度以及端口的可用性。例如,我们可以使用这样的工具来检查网络延迟、丢包率、带宽利用率等...

    TCP_UDP_PerformanceTest 测试工具

    《TCP与UDP性能测试工具详解》 在计算机网络通信领域,TCP(传输控制协议)与UDP(用户数据报协议)是两种广泛使用的传输层协议。TCP以其可靠性和顺序传输著称,而UDP则以高效和低延迟为特点。TCP_UDP_...

    TCP&UDP测试工具_tcp&udp_TCP/UDP测试工具_TCP工具_

    在IT行业中,网络通信是至关重要的部分,而TCP(传输控制协议)与UDP(用户数据报协议)作为两种主要的传输层协议,扮演着不同角色。TCP提供的是面向连接、可靠的、基于字节流的传输服务,而UDP则是无连接、不可靠的...

    TCP/UDP网络调试工具

    在IT行业中,网络通信是软件开发中的重要环节,TCP(传输控制协议)和UDP(用户数据报协议)作为两种主流的传输层协议,被广泛应用于各种网络应用中。本篇将详细阐述TCP/UDP网络调试工具及其在开发过程中的作用。 ...

    面试必备TCP&UDP;区别

    面试中经常会被问到TCP与UDP的区别,这是网络编程的基础问题,也是考察求职者对网络协议理解和掌握程度的关键点。本文将详细介绍TCP和UDP的区别,并且包含面试中可能遇到的相关知识点。 TCP(传输控制协议)是一种...

    java读写Modbus TCP UDP数据,java与modbus通信,Modbus TCP UDP与java通信 全开源

    java读写Modbus TCP UDP数据,java与modbus通信,Modbus TCP UDP与java通信 全开源 这是一个能正常通过Modbus TCP UDP协议读写项目 请放心下载,完全开源,在多个项目中已经使用

    小飞机-TCP-UDP测试工具.zip

    《小飞机:网络通信的TCP与UDP测试利器》 在信息技术高速发展的今天,网络通信扮演着至关重要的角色。为了确保网络应用的稳定性和效率,测试工具的使用变得越来越普遍。"小飞机-TCP-UDP测试工具"就是这样一个专门...

    TCP UDP.zip

    在IT行业中,网络通信是至关重要的一个领域,而TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)则是两种最基础的传输层协议,它们在互联网通信中起着关键作用。本压缩包“TCP UDP.zip”可能...

    TCPUDP调试工具

    TCPUDP调试工具是网络开发者和系统管理员常用的实用程序,用于测试、诊断和优化TCP与UDP通信。这些工具通常包含了丰富的功能,如发送和接收数据包、端口扫描、抓包分析等,对于理解网络通信行为,排查问题或进行性能...

    TCP-UDP服务管理 3.01

    理解TCP和UDP的区别以及如何管理和使用这两种服务对于任何IT专业人员来说都是至关重要的。 TCP是一种面向连接的、可靠的传输协议。它确保了数据的完整性和顺序,通过三次握手建立连接,通过序列号和确认应答机制...

    mina TCP、UDP通讯

    《mina TCP、UDP通讯详解与实战》 mina是Apache软件基金会的一个开源项目,它提供了一个高性能、异步事件驱动的网络应用框架,主要用于简化TCP和UDP的网络编程。mina不仅适用于Java开发者,而且由于其跨平台性,也...

    00Tcp Udp测试小工具源码

    通过研究这个源码,你可以深入理解TCP和UDP的区别,了解它们在网络编程中的实际应用,同时也能提高你在Windows环境下使用C++进行网络编程的能力。这将对你的网络开发技能有极大的提升,帮助你在面对实际项目时能更...

    Socket TCP UDP 客户端 服务器模拟工具

    在标题和描述中提到的"Socket TCP UDP 客户端 服务器模拟工具",它是一个帮助开发者理解和实践TCP和UDP协议的工具。TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是互联网上最常用的两种...

    tcp,udp测试工具

    在IT行业中,网络协议是构建通信系统的基础,TCP(传输控制协议)和UDP(用户数据报协议)是其中最常用且至关重要的两种协议。本文将深入探讨这两种协议以及相关的测试工具,以帮助理解和优化网络通信。 TCP(传输...

    TCP_UDP发包工具

    TCP UDP 发包工具,带图形界面,win7 win8 win10可用 ok

Global site tag (gtag.js) - Google Analytics