【发布时间】:2012-02-08 06:38:45
【问题描述】:
我正在尝试运行嵌入在我的 Android 应用程序中的小型自定义 HTTP 服务器(以帮助调试应用程序)。但是,当服务器在我的 Android 2.3.4 手机上运行时,我无法从桌面 Web 浏览器可靠地连接到 HTTP 服务器。
我知道 HTTP 服务器代码可以正常工作(至少是基础代码),因为有一次连接正常。并且代码在我的桌面上运行时可以可靠地运行(我的应用程序是基于 libgdx 的纯 Java 应用程序,可以为 Windows 或 Android 构建)。
我的 Android 权限是正确的,因为在添加 android:name="android.permission.INTERNET" 权限之前,我遇到了 PermissionDenied 错误(设置套接字侦听器时)。服务器端代码在自己的线程中运行,归结为:
ServerSocket ss = new ServerSocket(serverPort);
Socket clientSocket = ss.accept();
我使用的是 8080 端口。(我尝试了 80 端口,但使用了 Linux 的must-be-root-below-port-1024“功能”)。
LogCat 输出看起来不错。我的应用程序只是打印其“在端口 8080 上侦听”消息,似乎没有抛出异常。
网络连接似乎很好(通过手机浏览互联网工作正常,我可以从桌面上ping 手机)。我用的是 WiFi,不是 3G。
【问题讨论】:
-
您从浏览器得到什么错误?您可以连接其他程序吗,例如远程登录?它会给出同样的错误吗?
-
@JoachimPileborg Web 浏览器给出“无法连接:Firefox 无法与位于 192.168.69.113:8080 的服务器建立连接”。同样,“telnet 8080 192.168.69.113”表示“无法连接到远程主机:连接被拒绝”
标签: java android network-programming