Python 初始化套接字对象
设置套接字对象时,我使用:Python 初始化套接字对象,python,sockets,networking,Python,Sockets,Networking,设置套接字对象时,我使用: socket.socket() 写得更详细(也是默认值)的是: 关于这一点,有几个问题: socket.AF_INET允许我传递主机/端口,即ipv4地址。为什么惯例称它为AF\u INET(而不是,例如,socket.IPV4),这代表什么 什么是SOCK\u-STREAM?这仅仅意味着它将接受HTTP请求,还是其他什么?另外,使用SOCK\u-STREAM和SOCK\u-RAW之间有什么区别?AF\u-INET这个名称是从Unix复制的,它是“InterNET”
socket.socket()
写得更详细(也是默认值)的是:
关于这一点,有几个问题:
socket.AF_INET
允许我传递主机/端口,即ipv4地址。为什么惯例称它为AF\u INET
(而不是,例如,socket.IPV4
),这代表什么
什么是
SOCK\u-STREAM
?这仅仅意味着它将接受HTTP
请求,还是其他什么?另外,使用SOCK\u-STREAM
和SOCK\u-RAW
之间有什么区别?AF\u-INET
这个名称是从Unix复制的,它是“InterNET”的缩写.这个缩写是在IPv6设计之前很多年创建的,当时只有一个互联网协议,因此设计师没有想到将其命名为IPV4
AF
代表“地址族”,意思是协议使用互联网地址。还有PF
,代表“协议族”.在设计时,有一种想法,即可能有多个协议使用相同的寻址形式,因此它们将这些概念分开,但实际上它们是一对一的,因此区别逐渐消失(所有AF_xxx常量与相应的PF_xxx常量具有相同的值)
SOCK_-STREAM
表示套接字传输字节流。另一种选择是SOCK_-DGRAM
,它将消息作为称为“数据报”的不同单元进行传输。所有名称都是从(man-socket
)借用的
不同的缩写代表什么:
- 地址族
- _INET-互联网(IPv4-当时存在)。完整规范:
- 插座
- _DGRAM-无连接数据报(通常为UDP协议)
- _流-连接字节流(通常是TCP协议)
- _RAW-原始(“未处理”)网络协议(或原始套接字:)
socket.socket(socket.AF_INET, socket.SOCK_STREAM)