Я очень новичок в сетевом программировании. Я пытаюсь настроить веб-сервер и пытаюсь связать приветствующий сокет с адресом localhost и произвольным номером порта, который передается в качестве аргумента командной строки. Тем не менее, метод 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)"
Как мне это исправить?