python - 无法使用 NetMQ 在 Unity3d 和 Python 之间发送消息
问题描述
我想使用 ZMQ 在 Android 和 Python 之间来回传输消息。我正在使用 NetMQ/ZMQ 这样做。以下是我的请求者代码。
public class Requester : RunAbleThread
{
protected override void Run()
{
ForceDotNet.Force();
using (RequestSocket client = new RequestSocket())
{
client.Connect("tcp://localhost:5556");
for (int i = 0; i < 10 && Running; i++)
{
Debug.Log("Sending Hello");
client.SendFrame("Hello");
string message = null;
bool gotMessage = false;
while (Running)
{
gotMessage = client.TryReceiveFrameString(out message);
if (gotMessage) break;
}
if (gotMessage) Debug.Log("Received " + message);
}
}
NetMQConfig.Cleanup();
}
}
以下是我的接收者的代码。
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5556")
while True:
# Wait for next request from client
message = socket.recv()
print("Received request: %s" % message)
socket.send(b"World")
上面的代码在编辑器模式下工作得很好。但是,当我在 Android 中运行相同的代码时,请求者根本没有收到任何消息。我错过了什么?两台设备都连接到同一个 WIFI 热点。
解决方案
您正在使用
client.Connect("tcp://localhost:5556")
本地主机就是您的设备本身!
它在编辑器中工作,因为编辑器和 python 都在同一设备上运行!
由于您的手机上没有运行 python 服务器,因此尝试连接到5556
手机的端口是没有用的;)
您宁愿使用与手机在同一网络中的 PC 的 IP。像例如
client.Connect("tcp://192.168.1.234:5556")
推荐阅读
- typescript - 使用 Typescript 为 Vue 项目设置单元测试失败并出现 TypeError:无法解构“未定义”或“空”的属性“polyfills”
- google-apps-script - Google Apps Script : Approval workflow with html, google sheet, pdf
- three.js - Theejs - Change texture on collada element with uses ShaderMaterial
- python - GDAL Intersection return value
- jquery - jquery loading gif loads after ajax call
- ios - 安装配置文件时出现问题
- excel - Download .csv from an indirect Asana link
- excel - Pulling multiple names that are listed from a different sheet to another
- love2d - How can you make the updates/second constant?
- python - 逻辑回归完全是关于统计数据?