设置套接字对象时,我使用:
socket.socket()
更详细地说(也是默认设置)的是:
socket.socket(socket.AF_INET, socket.SOCK_STREAM)
关于此的几个问题:
socket.AF_INET
允许我通过以传递主机/端口,即ipv4地址。为什么要用惯例来称呼它AF_INET
(例如,而不是socket.IPV4
。)代表什么?
什么SOCK_STREAM
啊 这是否仅表示将接受HTTP
请求或其他?另外,使用SOCK_STREAM
和之间会有什么区别SOCK_RAW
?
该名称AF_INET
是从Unix复制而来的,是“ InterNET”的缩写。该缩写是在设计IPv6之前多年创建的,当时只有一个Internet协议,因此IPV4
设计者并未想到调用它的想法。
AF
代表“地址族”,表示该协议使用Internet地址。还有PF
,代表“协议族”。在设计该协议时,曾有一种想法,即可能有多个协议使用相同的寻址方式,因此它们将这些概念分开,但实际上它们是一对一的,因此区别逐渐消失了。 (所有AF_xxx常数与相应的PF_xxx常数具有相同的值)。
SOCK_STREAM
表示套接字传输字节流。替代方法是SOCK_DGRAM
,它以称为“数据报”的不同单位传输消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句