【发布时间】:2014-10-09 08:41:25
【问题描述】:
我正在开发一个 google glass/android 应用程序。它是一个视频流应用程序,具有服务器/客户端设置,其中手机/眼镜是服务器,并将 PC 与会话描述挂钩以播放视频。它在 android 上运行良好,一切运行良好,但是一旦我尝试在 google glass 上测试它,它就会在这一行抛出一个错误
sSocket = new ServerSocket(sPort);
异常消息显示“EADDRINUSE”,我假设这意味着端口已经打开,但我从未打开它。即使我打开了它并且我的程序没有关闭它,我更改了几次端口,它仍然说它正在使用中。
谢谢
【问题讨论】:
-
需要更多代码才能(可能)提供帮助。
-
我没有包含更多代码的唯一原因是因为它是基本的 tcp 服务器/客户端代码。根据 Android 规范,ServerSocket 声明位于单独的线程中。 run 方法只有一个带有 new ServiceHandler(sSocket.accept())).start(); 的循环。这增加了一个新的套接字连接。 ServiceHandler 中的 run 方法只是做我需要对那个套接字做的 io。我尝试将 soReuseAddress 设置为 true,然后在此之后绑定它,但不是 EADDRINUSE,而是在 serversocket accept() 循环中得到大量异常。
标签: android sockets google-glass google-gdk