Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 为什么socket.bind()在这里需要一个整数?_Python 3.x_Sockets_Network Programming_Bind - Fatal编程技术网

Python 3.x 为什么socket.bind()在这里需要一个整数?

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]

我对网络编程非常陌生。我试图设置一个web服务器,并试图将欢迎套接字绑定到本地主机地址和作为命令行参数传递的任意端口号。然而,socket.bind()方法总是给我错误,说它期望的是整数而不是字符串,而从文档中我可以看出,主机地址应该是字符串

我尝试了gethostname、gethostbyname以及两者的组合来解决这个错误,但似乎什么都不起作用

这是我编写的程序的一个片段:

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)))