Я подключаюсь к сокету, но получаю сообщение об ошибке

Я делаю подключение к сокету, и когда я пытаюсь подключиться к другому компьютеру, он возвращает ошибку:

Traceback (most recent call last):<br>
  File "C:\Python34\Scripts\stuff\server.py", line 9, in <"module"><br>  ##without the quotations the word would not appear because of the "<>" in html code.<br>
    s.bind((HOST,PORT))<br>
OSError: [WinError 10049] The requested address is not valid in its context

Вот код для сервера/приемника:

import socket

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

HOST = "192.168.1.157"
PORT = 5454

s.bind((HOST,PORT))
s.listen(1)

while True:

    connection,client = s.accept()

    try:
        while True:
            print(bytes.decode(connection.recv(999)))
    except:
        connection.close()

А вот код для клиента/отправителя:

import socket

HOST = input("Connect to: ")
PORT = 5454

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((HOST,PORT))

while True:
    text = str.encode(input("Send: "))
    s.sendall(text)

Все это работает, если я использую «localhost» для HOST как на сервере, так и на клиенте, но идея состоит в том, что получатель на чьем-то компьютере будет подключаться к моему компьютеру, и я должен ввести IP-адрес их компьютера для отправителя.

Это я что-то не так делаю или что-то пропустил? Я новичок в этом, но я просмотрел множество руководств, и для меня это должно работать. Любая помощь приветствуется.


person Ruarri    schedule 06.10.2015    source источник
comment
Вы получаете сообщение об ошибке, когда клиент пытается подключиться к прослушивающему серверу?   -  person iNoob    schedule 06.10.2015
comment
Нет, сервер выдает ошибку при попытке подключения к клиенту.   -  person Ruarri    schedule 06.10.2015
comment
Хм, обычно клиент подключается к прослушивающему серверу, судя по всему, у вас проблемы с привязкой к адресу, который вы указываете на стороне сервера. Вы запускаете сервер, и он слушает данный порт?   -  person iNoob    schedule 06.10.2015
comment
Предполагается, что он прослушивает данный порт, но получает сообщение об ошибке, прежде чем сделает что-либо еще.   -  person Ruarri    schedule 06.10.2015
comment
Запрошенный адрес недействителен в своем контексте например. поднятый во время bind() API сокетов Windows, когда адрес, который вы пытаетесь использовать, не является адресом локального интерфейса. Является ли 192.168.1.157 адресом сервера? Вы можете уточнить у ipconfig (может понадобиться ipconfig /all).   -  person dhke    schedule 06.10.2015
comment
Да, дважды проверьте свой адрес, я ожидаю, что это так же просто, как не иметь правильного адреса.   -  person iNoob    schedule 06.10.2015
comment
Я не пытаюсь подключиться к своему ноутбуку, я пытаюсь подключиться к ноутбуку моего отца. Я также проверил, его IP-адрес определенно 192.168.1.157.   -  person Ruarri    schedule 06.10.2015
comment
@Ruarri Что произойдет, если вы замените явный IP-адрес на s.bind('0.0.0.0', 5454)? Это говорит сокету прослушивать все локальные адреса.   -  person dhke    schedule 06.10.2015