什么是socket.SOL_TCP?

3
当我阅读Python的API文档时,发现有一个API:

socket.getaddrinfo(host, port, family=0, socktype=0, proto=0, flags=0)

这份文档没有解释参数proto,看起来缺少协议。下面有一个演示:

socket.getaddrinfo("www.python.org", 80, 0, 0, socket.SOL_TCP)

我有些困惑,socket.SOL_TCP是什么意思?

1个回答

2

Proto是协议。现代操作系统支持多种协议,包括:UDPTCPSCTP等。

Port也可以是服务名称(字符串),例如:

socket.getaddrinfo("www.python.org", "http", 0, 0, socket.SOL_TCP)

在这种情况下,协议用于解析服务名称。

http也是一种协议吗?socktypeproto之间有什么区别? - sinbar
不对,这里的协议只指OSI模型中的第四层协议。HTTP是第七层的协议,它是一种服务。 - Zang MingJie
socktype 可以是 STREAM、PACKET 或 SEQPACKET。顺便说一下,TCP 是流式的,而 UDP 是数据包式的。 - Zang MingJie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接