0
我想要开始使用基本的客户端服务器的东西。我的一台计算机上运行了Java服务器套接字程序。我的Android手机正在运行一个简单的应用程序,并充当客户端。我希望手机能够连接到我的电脑上的Java程序。简单的客户端服务器程序与本地IP地址
客户端尝试连接到我的计算机的本地IP地址,但无法连接。我得到一个IOException。下面是我使用了Android代码:
try {
echoSocket = new Socket("192.168.0.19", 7077);
System.out.println("length: "+ "socket created!");
} catch (UnknownHostException e) {
System.out.println("length: "+ "Don't know about host.");
} catch (IOException e) {
System.out.println("Couldn't get I/O for "
+ "the connection.");
}
如果我在我的电脑上运行的客户端和我的服务器,然后尝试连接到计算机的本地IP(同上),它工作正常。但我想从我的手机连接。
任何想法我需要做什么?
编辑:这里是堆栈跟踪:
07-21 15:37:34.223: W/System.err(3474): android.os.NetworkOnMainThreadException
07-21 15:37:34.223: W/System.err(3474): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
07-21 15:37:34.223: W/System.err(3474): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
07-21 15:37:34.223: W/System.err(3474): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
07-21 15:37:34.223: W/System.err(3474): at libcore.io.IoBridge.connect(IoBridge.java:112)
07-21 15:37:34.223: W/System.err(3474): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
07-21 15:37:34.223: W/System.err(3474): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
07-21 15:37:34.223: W/System.err(3474): at java.net.Socket.startupSocket(Socket.java:566)
07-21 15:37:34.223: W/System.err(3474): at java.net.Socket.tryAllAddresses(Socket.java:127)
07-21 15:37:34.223: W/System.err(3474): at java.net.Socket.<init>(Socket.java:177)
07-21 15:37:34.223: W/System.err(3474): at java.net.Socket.<init>(Socket.java:149)
07-21 15:37:34.223: W/System.err(3474): at com.nikhildev.cricketeye.MainActivity.startVideoCamera(MainActivity.java:45)
07-21 15:37:34.223: W/System.err(3474): at java.lang.reflect.Method.invokeNative(Native Method)
07-21 15:37:34.223: W/System.err(3474): at java.lang.reflect.Method.invoke(Method.java:511)
07-21 15:37:34.223: W/System.err(3474): at android.view.View$1.onClick(View.java:3594)
07-21 15:37:34.223: W/System.err(3474): at android.view.View.performClick(View.java:4204)
07-21 15:37:34.223: W/System.err(3474): at android.view.View$PerformClick.run(View.java:17355)
07-21 15:37:34.223: W/System.err(3474): at android.os.Handler.handleCallback(Handler.java:725)
07-21 15:37:34.223: W/System.err(3474): at android.os.Handler.dispatchMessage(Handler.java:92)
07-21 15:37:34.223: W/System.err(3474): at android.os.Looper.loop(Looper.java:137)
07-21 15:37:34.223: W/System.err(3474): at android.app.ActivityThread.main(ActivityThread.java:5041)
07-21 15:37:34.233: W/System.err(3474): at java.lang.reflect.Method.invokeNative(Native Method)
07-21 15:37:34.233: W/System.err(3474): at java.lang.reflect.Method.invoke(Method.java:511)
07-21 15:37:34.233: W/System.err(3474): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-21 15:37:34.233: W/System.err(3474): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-21 15:37:34.233: W/System.err(3474): at dalvik.system.NativeStart.main(Native Method)
您的手机是否与您的电脑位于同一网络?你能从电脑上ping你的手机吗? – Gomino
您的wifi路由器可能不允许您发送connect()请求到该端口,甚至在本地。它在您的计算机上运行双方时起作用,因为它实际上从未通过网络发送数据 - 它意识到您将它发送给自己,只是假装发送了它。 –
我能够从我的电脑ping我的手机。 – Cricketer