Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 收听从Windows运行Raspbian的WebSocket_Python_Websocket_Raspbian_Python Asyncio - Fatal编程技术网

Python 收听从Windows运行Raspbian的WebSocket

Python 收听从Windows运行Raspbian的WebSocket,python,websocket,raspbian,python-asyncio,Python,Websocket,Raspbian,Python Asyncio,我使用Python的asyncio和websockets模块创建了一个websocket。此服务器在同一台机器上正常工作。这是服务器的实际代码: import sys import os import asyncio import websockets @asyncio.coroutine def receive(websocket, path): data = yield from websocket.recv() print('< {}'.format(data))

我使用Python的
asyncio
websockets
模块创建了一个websocket。此服务器在同一台机器上正常工作。这是服务器的实际代码:

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()
我已在Raspbian上安装了
ufw
,以使用以下命令启用端口8765:

ufw allow 8765
但它不起作用。在Windows计算机上,命令

nmap -p 8765 192.168.0.26
生成以下结果:

PORT        STATE    SERVICE
8765/tcp    closed   ultraseek-http
而且。。。命令

ufw status
是否有人可以提出一些建议来解决客户端和服务器之间的通信问题。

这里有一个问题:

start_server = websockets.serve(receive, '127.0.0.1', 8765)
您已告知websockets仅在127.0.0.1上使用,因此您只能接收来自本地主机的连接,并且只能在传统IPv4上使用。本地主机IPv6连接(默认)和来自其他计算机的所有连接都将收到连接拒绝错误

如果要从本地计算机外部接收连接,应将
主机
设置为
或空字符串。这将接受来自IPv6和IPv4上任何位置的连接,当然要遵守任何防火墙规则

start_server = websockets.serve(receive, None, 8765)
主机和端口直接传递给文档的主机:

  • 如果主机是字符串,则TCP服务器将绑定到主机指定的单个网络接口
  • 如果主机是一个字符串序列,则TCP服务器将绑定到该序列指定的所有网络接口
  • 如果主机为空字符串或无,则假定所有接口,并返回多个套接字的列表(最有可能是一个用于IPv4,另一个用于IPv6)
start_server = websockets.serve(receive, None, 8765)