Я создал веб-сокет, используя модули Python asyncio
и websockets
.Этот сервер работает правильно на той же машине.Это фактический код для сервера:
import sys
import os
import asyncio
import websockets
@asyncio.coroutine
def receive(websocket, path):
data = yield from websocket.recv()
print('< {}'.format(data))
output = 'Sent data from server: {}'.format(data)
yield from websocket.send(output)
print('> {}'.format(output))
start_server = websockets.serve(receive, '127.0.0.1', 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Он работает правильно, и соединение с клиентом, находящимся на том же компьютере, подключается к нему без каких-либо проблем.
Но когда я пытаюсьдля доступа к нему от клиента в сети LAN он генерирует ConnectionRefusedError
.Это код клиента:
import asyncio
import websockets
@asyncio.coroutine
def hello():
websocket = yield from websockets.connect(
'ws://192.168.0.26:8765')
try:
name = input("What's your name? ")
yield from websocket.send(name)
print("> {}".format(name))
greeting = yield from websocket.recv()
print("< {}".format(greeting))
finally:
yield from websocket.close()
asyncio.get_event_loop().run_until_complete(hello())
Я установил ufw
на Raspbian, чтобы включить порт 8765 с помощью этой команды:
ufw allow 8765
Но это не работает.На компьютере с Windows команда
nmap -p 8765 192.168.0.26
генерирует такой результат:
PORT STATE SERVICE
8765/tcp closed ultraseek-http
И ... команда
ufw status
Может кто-нибудь дать некоторые предложениярешить эту проблему связи между клиентом и сервером.