这些是正常的getaddrinfo使用:
socket.getaddrinfo('localhost',25)
socket.getaddrinfo('localhost','smtp')
但这也适用(在Python 3.4中尝试过):
socket.getaddrinfo('localhost','25')
对我来说似乎很合乎逻辑,但文档说:
port是一个字符串服务名称,例如' http',一个数字端口号或 无
字符串可以像' 25'被视为数字?最后一个getaddrinfo示例好吗?
答案 0 :(得分:3)
Python套接字模块是BSD套接字接口的C API的包装器。在此接口中,getaddrinfo
函数采用service
参数,该参数是一个字符串,可以是服务名称,端口号的字符串表示形式,也可以是null。
As seen here,Python函数将相应的参数转换为字符串(如果需要)并调用C getaddrinfo
函数。因此,它与25
和'25'
等效。