Sockets TCP与ip的关系;SOCK_流和UDP&;短袜
Sockets TCP与ip的关系;SOCK_流和UDP&;短袜,sockets,unix,network-protocols,Sockets,Unix,Network Protocols,SOCK\u STREAMinternet套接字是否始终使用TCP 和SOCK_DGRAM是否始终使用UDP 换句话说,这些夫妇的要素之间是否存在1:1的对应关系: SOCK\u流&TCP SOCK_DGRAM&UDP ?否。 SOCK\u流只表示套接字是字节流。由于TCP使用字节流,因此创建TCP套接字的是SOCK_STREAM与IPPROTO_TCP的组合 SOCK_DGRAM仅表示套接字使用数据报。由于UDP使用数据报,因此创建UDP套接字的是SOCK_DGRAM与IPPROTO_UD
SOCK\u STREAM
internet套接字是否始终使用TCP
和SOCK_DGRAM
是否始终使用UDP
换句话说,这些夫妇的要素之间是否存在1:1的对应关系:
&TCPSOCK\u流
&UDPSOCK_DGRAM
SOCK\u流
只表示套接字是字节流。由于TCP使用字节流,因此创建TCP套接字的是SOCK_STREAM
与IPPROTO_TCP
的组合
SOCK_DGRAM
仅表示套接字使用数据报。由于UDP使用数据报,因此创建UDP套接字的是SOCK_DGRAM
与IPPROTO_UDP
的组合
当调用socket()
并将protocol
参数设置为0时,IPPROTO\u TCP
是SOCK\u流的默认值,IPPROTO\u UDP
是SOCK\u DGRAM
的默认值。但是,如果需要,没有任何东西可以阻止其他套接字协议使用SOCK_-STREAM
或SOCK_-DGRAM
。例如,在某些平台上,您可以将IPPROTO_ICMP
与SOCK_DGRAM
一起使用,以替代将IPPROTO_ICMP
与SOCK_RAW
一起使用(SOCK_RAW
需要管理员权限,但SOCK_DGRAM
不需要管理员权限)