【发布时间】:2020-02-15 14:43:49
【问题描述】:
我对网络编程非常陌生。我正在尝试设置 Web 服务器,并尝试将欢迎套接字绑定到 localhost 地址和作为命令行参数传递的任意端口号。但是,socket.bind() 方法总是给我错误,说它需要一个整数而不是一个字符串,而据我从文档中可以看出,主机地址应该是一个字符串。
我已尝试使用 gethostname、gethostbyname 以及两者的组合来解决此错误,但似乎没有任何效果。
这是我编写的程序的 sn-p:
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: an integer is required (got type str)”
我该如何解决这个问题?
【问题讨论】:
标签: python-3.x sockets network-programming bind