Я делаю подключение к сокету, и когда я пытаюсь подключиться к другому компьютеру, он возвращает ошибку:
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-адрес их компьютера для отправителя.
Это я что-то не так делаю или что-то пропустил? Я новичок в этом, но я просмотрел множество руководств, и для меня это должно работать. Любая помощь приветствуется.
bind()
API сокетов Windows, когда адрес, который вы пытаетесь использовать, не является адресом локального интерфейса. Является ли192.168.1.157
адресом сервера? Вы можете уточнить уipconfig
(может понадобитьсяipconfig /all
). - person dhke   schedule 06.10.2015s.bind('0.0.0.0', 5454)
? Это говорит сокету прослушивать все локальные адреса. - person dhke   schedule 06.10.2015