socket.getaddrinfo端口号可以作为字符串给出吗?

时间:2015-11-30 15:32:05

标签: python

这些是正常的getaddrinfo使用:

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

但这也适用(在Python 3.4中尝试过):

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

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

  

port是一个字符串服务名称,例如' http',一个数字端口号或   无

字符串可以像' 25'被视为数字?最后一个getaddrinfo示例好吗?

1 个答案:

答案 0 :(得分:3)

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

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