Я изучаю библиотеку сокетов python и сталкиваюсь с проблемами всякий раз, когда пытаюсь подключиться к серверу, работающему на моем локальном хосте, с помощью клиентского приложения.
Вот код сервера:
import socket
HOST = '127.0.0.1' # Standard loopback interface address (localhost)
PORT = 65432 # Port to listen on (non-privileged ports are > 1023)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
print(data)
Вот код моего клиентского приложения:
import socket
HOST = "localhost" # The server's hostname or IP address
PORT = 65432 # The port used by the server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
print('Received', repr(data))
Вот мое сообщение об ошибке:
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
Вот то, что я пробовал до сих пор:
Полное отключение моего брандмауэра Windows 10 в командной строке windows с помощью следующей команды:
netsh advfirewall отключил состояние allprofiles. Это не сработало
В windows брандмауэр Я добавил внутреннее правило и исходящее правило, которое позволяет любому приложению в моей ОС получать доступ к службе, работающей на порту 65432
Я изменил свою версию python с 3.8.2 на 3.7.7, потому что раньше я мог отлично запустить этот код и использовал версию python 3.7
Я пробовал несколько разных методов установки переменной HOST, включая «localhost», «127.0.0.1», socket.gethost () и socket.gethostbyname («localhost»)
Я могу подключиться к серверу с помощью приложения Windows te lnet, но это все. Честно говоря, я исчерпал возможные решения, которые я могу найти в Интернете, и я знаю, что этот вопрос часто возникал на этом веб-сайте, но я честно пробовал каждое решение, которое я видел до сих пор, включая три часа поиска.
Спасибо за любую помощь, которую вы можете оказать, ребята.