这些是正常的getaddrinfo用法:

socket.getaddrinfo('localhost',25)
socket.getaddrinfo('localhost','smtp')


但这也很好(在Python 3.4中试用):

socket.getaddrinfo('localhost','25')


对我来说似乎合乎逻辑,但是文档中说:


  port是字符串服务名称,例如“ http”,数字端口号或
  没有


像“ 25”这样的字符串可以视为数字吗?最后一个getaddrinfo示例可以吗?

最佳答案

Python套接字模块是BSD套接字接口的C API的包装。在此接口中,getaddrinfo函数采用一个service参数,该参数是一个字符串,可以是服务名称,端口号的字符串表示形式或null。

As seen here,Python函数将相应的参数转换为字符串(如果需要)并调用C getaddrinfo函数。因此,它将与25'25'等效地工作。

关于python - 可以将socket.getaddrinfo端口号作为字符串给出吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34002152/

10-12 18:13