意想不到的套接字.getaddrinfoPython中使用SOCK\u流的行为

2024-09-27 09:33:21 发布

您现在位置:Python中文网/ 问答频道 /正文

  • 我正忙着用socket.getaddrinfo()解析域名。当我经过时:

host = 'www.google.com', port = 80, family = socket.AF_INET, type = 0, proto = 0, flags = 0

我得到了一对你想要的插座信息,一个SocketKind.SOCK\DGRAM公司(对于UDP)和另一个SocketKind.SOCK\u流(TCP)。你知道吗

  • 当我将proto设置为socket.IPPROTO_TCP时,我将它的范围缩小到只使用TCP。

  • 然而,当我使用proto = socket.SOCK_STREAM(这不应该起作用)时,我得到一个SocketKind.SOCK\u生的.

  • 另外,Python不允许我使用proto = socket.IPPROTO_RAW——我得到了“坏提示”。

你有什么想法吗?你知道吗


Tags: comhostportwwwgooglesocketfamilytcp
1条回答
网友
1楼 · 发布于 2024-09-27 09:33:21

socket.SOCK_STREAM应该在type字段中传递。在proto字段中使用它可能会产生非常随机的效果,这就是您所看到的。Proto只接受IPPROTO常量。对于原始套接字,应该使用type = socket.SOCK_RAW。但我不确定getaddrinfo是否支持,它主要用于TCP和UDP。你知道吗

在你的问题中最好有一些实际的代码。那时候就更容易看到发生了什么。你知道吗

相关问题 更多 >

    热门问题