gpt4 book ai didi

c# - websocket 无法访问本地网络客户端服务

转载 作者:行者123 更新时间:2023-12-03 03:19:18 25 4
gpt4 key购买 nike

本地网络中的 websocket 连接遇到一些问题。

场景:

对于我的笔记本电脑 (Win7),我编写了一个服务,该服务可打开 Websocket 服务器到端口 2014。由于 Windows 7 默认情况下未启用 Websocket,所以我使用的是 supersocket 库 ( http://www.supersocket.net/ )。

对于客户,我用 sencha touch 和 Phonegap 编写了一个 Android 应用程序。为了启用对版本低于 4.4 的 Android 设备的 websocket 支持,我集成了phonegap websocket- pugin。

原因是在Android设备和笔记本电脑之间打开WebSocket连接,以通过Android应用程序控制笔记本电脑。两台设备都是同一本地网络的成员。

问题:

安装两个应用程序(Windows 服务和 Android 应用程序)后,我尝试将我的 Android 设备与笔记本电脑上的服务连接起来。第一步是在客户端上打开连接:

var connection = new WebSocket('ws://192.168.178.21:2014');

但是在我的 Windows 服务的事件日志中没有记录成功的连接。

之后,我打开笔记本电脑的浏览器并测试了相同的代码 - 成功。客户端和服务器可以相互通信。

所以我在我的 Android 设备上测试了 websocket-support:将 websocket-url 更改为

var connection = new WebSocket('ws://echo.websocket.org');

并且可以连接到服务器 -> Android websocket 没问题。

第三步是禁用我的防火墙并检查与 Wireshark 的连接:

截图:http://www.directupload.net/file/d/3710/y9t79npy_png.htm

192.168.178.21 -> 笔记本电脑 IP

192.168.178.23 -> Android 设备 IP

看来数据包到达了我的笔记本电脑,但没有到达服务。其他尝试使用安全 wss://协议(protocol) - 没有成功。

没有什么想法了。很高兴获得一些帮助:)

最佳答案

So it seems that the packets reach my laptop but not the service.

服务器是否绑定(bind)到特定的 IP 地址或主机名?通常,服务器会隐式绑定(bind)到所有接口(interface),例如 0.0.0.0,但有时它们会绑定(bind)到一个特定接口(interface)。如果发生这种情况,那么您需要连接到同一接口(interface)。

您说您的客户端正在连接到 ws://192.168.178.21:2014,但服务器是否绑定(bind)到 127.0.0.1 或 localhost 或您的主机名,因此看不到请求?这可以解释为什么笔记本电脑收到了请求,但没有收到您的服务。

话又说回来,您说过您在本地浏览器中尝试过,并且成功了。您是否使用相同的 IP 地址,或者使用 127.0.0.1 或 localhost?假设您使用相同的 IP 地址 192.168.178.21,那么这表明这不是我描述的绑定(bind)问题。

抱歉,暂时只能想到这些。

关于c# - websocket 无法访问本地网络客户端服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com