Python 3.x 为什么socket.bind()在这里需要一个整数?
我对网络编程非常陌生。我试图设置一个web服务器,并试图将欢迎套接字绑定到本地主机地址和作为命令行参数传递的任意端口号。然而,socket.bind()方法总是给我错误,说它期望的是整数而不是字符串,而从文档中我可以看出,主机地址应该是字符串 我尝试了gethostname、gethostbyname以及两者的组合来解决这个错误,但似乎什么都不起作用 这是我编写的程序的一个片段:Python 3.x 为什么socket.bind()在这里需要一个整数?,python-3.x,sockets,network-programming,bind,Python 3.x,Sockets,Network Programming,Bind,我对网络编程非常陌生。我试图设置一个web服务器,并试图将欢迎套接字绑定到本地主机地址和作为命令行参数传递的任意端口号。然而,socket.bind()方法总是给我错误,说它期望的是整数而不是字符串,而从文档中我可以看出,主机地址应该是字符串 我尝试了gethostname、gethostbyname以及两者的组合来解决这个错误,但似乎什么都不起作用 这是我编写的程序的一个片段: from socket import * import sys port_number = sys.argv[1]
from socket import *
import sys
port_number = sys.argv[1]
server_sock = socket(AF_INET, SOCK_STREAM)
host = gethostbyname(gethostname())
print(host)
server_sock.bind((host, port_number))
server_sock.listen(1)
print('The server is online.')
确切地说,这是我得到的错误:“TypeError:需要一个整数(得到类型str)”
如何解决此问题?端口需要为整数,因此请将字符串
端口号
转换为整数:
server_sock.bind((host, int(port_number)))