Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java libGDX:SocketTimeoutException与android_Java_Android_Sockets_Libgdx_Cross Platform - Fatal编程技术网

Java libGDX:SocketTimeoutException与android

Java libGDX:SocketTimeoutException与android,java,android,sockets,libgdx,cross-platform,Java,Android,Sockets,Libgdx,Cross Platform,我目前正在使用libgdx。我想通过WebSocket连接到已经运行的Java服务器应用程序。 当我启动桌面应用程序时,everythins工作正常,但android应用程序无法连接 我收到以下LogCat输出: 03-13 16:05:21.508:E/AndroidRuntime(27405):致命异常:GLThread 2370 03-13 16:05:21.508:E/AndroidRuntime(27405):进程:com.myProject.android,PID:27405 03-

我目前正在使用libgdx。我想通过WebSocket连接到已经运行的Java服务器应用程序。 当我启动桌面应用程序时,everythins工作正常,但android应用程序无法连接

我收到以下LogCat输出:

03-13 16:05:21.508:E/AndroidRuntime(27405):致命异常:GLThread 2370 03-13 16:05:21.508:E/AndroidRuntime(27405):进程:com.myProject.android,PID:27405 03-13 16:05:21.508:E/AndroidRuntime(27405):com.badlogic.gdx.utils.GdxRuntimeException:与192.168.1.100进行套接字连接时出错:4444 03-13 16:05:21.508:E/AndroidRuntime(27405):位于com.badlogic.gdx.net.NetJavaSocketImpl.(NetJavaSocketImpl.java:51) 03-13 16:05:21.508:E/AndroidRuntime(27405):位于com.badlogic.gdx.backends.android.AndroidNet.newClientSocket(AndroidNet.java:70) 03-13 16:05:21.508:E/AndroidRuntime(27405):位于com.myProject.ServerConnector.connect(ServerConnector.java:53) 03-13 16:05:21.508:E/AndroidRuntime(27405):在com.myProject.application.XDKVisualizer.create(XDKVisualizer.java:61) 03-13 16:05:21.508:E/AndroidRuntime(27405):位于com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:241) 03-13 16:05:21.508:E/AndroidRuntime(27405):在android.opengl.GLSurfaceView$GLThread.guarderrun(GLSurfaceView.java:1512) 03-13 16:05:21.508:E/AndroidRuntime(27405):位于android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240) 03-13 16:05:21.508:E/AndroidRuntime(27405):原因:java.net.SocketTimeoutException:在2147483647ms之后未能连接到/192.168.1.100(端口4444):断开连接失败:ETIMEDOUT(连接超时) 03-13 16:05:21.508:E/AndroidRuntime(27405):在libcore.io.IoBridge.isConnected(IoBridge.java:225) 03-13 16:05:21.508:E/AndroidRuntime(27405):在libcore.io.IoBridge.connecterNo(IoBridge.java:165)上 03-13 16:05:21.508:E/AndroidRuntime(27405):在libcore.io.IoBridge.connect(IoBridge.java:116)上 03-13 16:05:21.508:E/AndroidRuntime(27405):在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 03-13 16:05:21.508:E/AndroidRuntime(27405):在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:460) 03-13 16:05:21.508:E/AndroidRuntime(27405):位于java.net.Socket.connect(Socket.java:838) 03-13 16:05:21.508:E/AndroidRuntime(27405):位于com.badlogic.gdx.net.NetJavaSocketImpl.(NetJavaSocketImpl.java:46) 03-13 16:05:21.508:E/AndroidRuntime(27405):。。。还有6个 03-13 16:05:21.508:E/AndroidRuntime(27405):原因:libcore.io.ErrnoException:断开连接失败:ETIMEDOUT(连接超时) 03-13 16:05:21.508:E/AndroidRuntime(27405):在libcore.io.IoBridge.isConnected(IoBridge.java:212) 03-13 16:05:21.508:E/AndroidRuntime(27405):。。。还有12个

以下是服务器和客户端应用程序的代码片段: 服务器:

客户:

    SocketHints hints = new SocketHints();
    hints.connectTimeout = CONNECTION_TIMEOUT;
    hints.socketTimeout = SOCKET_TIMEOUT;
    Socket socket = Gdx.net
            .newClientSocket(Protocol.TCP, mIp, mPort, hints);

    BufferedReader in = new BufferedReader(new InputStreamReader(
                socket.getInputStream()));

    new EventProcessor(in).start();
你知道为什么这样不行吗?我已经尝试了kyronet替代方案,并收到了相同的超时

比尔, 弗洛

    SocketHints hints = new SocketHints();
    hints.connectTimeout = CONNECTION_TIMEOUT;
    hints.socketTimeout = SOCKET_TIMEOUT;
    Socket socket = Gdx.net
            .newClientSocket(Protocol.TCP, mIp, mPort, hints);

    BufferedReader in = new BufferedReader(new InputStreamReader(
                socket.getInputStream()));

    new EventProcessor(in).start();