导航:首页 > 编程语言 > tcpudp编程区别

tcpudp编程区别

发布时间:2023-02-27 18:47:38

‘壹’ TCP和UDP具体编程时的区别

1. socket()的参数不同
UDP Server不需要调用listen和accept
UDP收发数据用sendto/recvfrom函数
TCP:地址信息在connect/accept时确定
UDP:在sendto/recvfrom函数中每次均 需指定地址信息
UDP:shutdown函数无效
通常我们在说到网络编程时默认是指TCP编程,即用前面提到的socket函数创建一个socket用于TCP通讯,函数参数我们通常填为SOCK_STREAM。即socket(PF_INET, SOCK_STREAM, 0),这表示建立一个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
第二个参数支持下列几种值:
SOCK_STREAM
Provides sequenced, reliable, two-way, connection-based byte streams. An out-of-band data transmission mechanism may be sup‐
ported.
SOCK_DGRAM
Supports datagrams (connectionless, unreliable messages of a fixed maximum length).
SOCK_SEQPACKET
Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a con‐
sumer is required to read an entire packet with each read system call.
SOCK_RAW
Provides raw network protocol access.
SOCK_RDM
Provides a reliable datagram layer that does not guarantee ordering.
SOCK_PACKET
Obsolete and should not be used in new programs; see packet(7).
从这里可以看出,SOCK_STREAM这种的特点是面向连接的,即每次收发数据之前必须通过connect建立连接,也是双向的,即任何一方都可以收发数据,协议本身提供了一些保障机制保证它是可靠的、有序的,即每个包按照发送的顺序到达接收方。
而SOCK_DGRAM这种是User Datagram Protocol协议的网络通讯,它是无连接的,不可靠的,因为通讯双方发送数据后不知道对方是否已经收到数据,是否正常收到数据。任何一方建立一个socket以后就可以用sendto发送数据,也可以用recvfrom接收数据。根本不关心对方是否存在,是否发送了数据。它的特点是通讯速度比较快。大家都知道TCP是要经过三次握手的,而UDP没有。

阅读全文

与tcpudp编程区别相关的资料

热点内容
sublimecss压缩 浏览:124
浏览器下载的app删除了怎么找回 浏览:773
朋友圈解压文字软件 浏览:918
keil5编程32单片机 浏览:636
pdf文件截取 浏览:159
服务器放到云上和云下有啥区别 浏览:673
单片机玻璃管加热研究成果 浏览:763
财产pdf 浏览:798
java添加图标 浏览:895
命令与征服4任务攻略 浏览:99
算法和逻辑程序验证 浏览:775
用户管理系统php模板 浏览:427
中国银行app账号怎么登录 浏览:873
安卓手机icloud云服务器地址 浏览:809
加密门禁如何写到小米手机 浏览:177
java静态方法的多线程 浏览:273
CAXAXp下载打不开要加密 浏览:252
开锁pdf 浏览:96
python可视化奶茶 浏览:232
命令方字幕 浏览:594