WinError 10061: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

Рейтинг: 0Ответов: 1Опубликовано: 17.07.2023

Пытаюсь сделать простой локальный чат на python с помощью socket. Код по сути выглядит так:
Файл сервера (server.py)

import socket
import select

HEADER_LEN = 10
PORT = 55555
SERVER_IP = socket.gethostbyname(socket.gethostname())
HOST_ADDR = ('', PORT)

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(HOST_ADDR)

server.listen()
print(f'IP сервера: {SERVER_IP}')
print('Сервер слушает')

Файл клиента (client.py):

import socket

HEADER_LEN = 10
PORT = 55555
CLIENT_IP = socket.gethostbyname(socket.gethostname())
ADDR = (CLIENT_IP, PORT)

username = input('Введите имя: ').encode('utf-8')
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect(ADDR)

С одного компьютера работает, а с разных - нет. Ошибка такая: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение Если указать у сервера и клиента один ip (компьютера с сервером), то подключение работает. Но я хочу потом это приложение другим людям отсылать. По запросам в поисковике у всех совет один: отключить фаервол и молиться. И у меня несколько вопросов: Что такое фаервол? Как его отключить? Можно ли обойтись без этого (всё-таки хочется сделать приложение для чата, которое смогут использовать разные люди)?

Ответы

▲ 1Принят

На клиенте должен быть адрес сервера при подключении. Если вы используете сервер с белым ip, то указать нужно его. В противном случае, необходимо чтобы сервер или клиент были в одной сети. Тогда необходимо указать адрес сервера в этой сети