我正在与Pupil Labs合作,后者是用于进行眼睛/学生跟踪的庞大开源软件。整个代码都是用Python编写的。所谓的Pupil Remote是基于ZeroMQ的。
如果我开始运行过滤器消息,一切都很好。出于我的目的,我需要将“过滤器消息”“转换”为Java,因为我创建了一个Android应用程序,该应用程序应调用一个客户端,该客户端的目的是充当python客户端。
到目前为止,这是我所做的:
import android.annotation.SuppressLint;
import org.zeromq.ZMQ;
import java.nio.charset.Charset;
import static java.lang.Thread.sleep;
public class ZeroMQClient {
@SuppressLint("NewApi")
public static void requestGazeData() {
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket subscriber = context.socket(ZMQ.SUB);
System.out.println("Connecting to server...");
subscriber.connect("tcp://xxx.x.x.x:50020");
System.out.println("Connected");
String gaze = "gaze";
subscriber.subscribe(gaze.getBytes(Charset.forName("UTF-8")));
while (true) {
String msg = subscriber.recvStr();
System.out.println(msg);
subscriber.close();
context.term();
}
}
}
现在,正如您所期望的,为什么我要问您,什么都没有发生,我没有从Pupil Labs服务器收到任何数据。我将自己定位为这篇文章,但不幸的是,它对我没有用。IP地址和端口也与服务器上的相同。它既不在本地也不在远程工作。
因为我坚持这一点,所以对任何答案感到高兴。
由于按照我的实现方式正确建立,实际的问题是防火墙,防火墙刚刚阻止了连接。通过发布我的解决方案,我希望能够为这个问题的未来访客提供帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句