我建立的Windows PC和Android之間的AAP串行通信的Android越來越java.net.SocketTimeoutException
這裏有我跟着 使用portforwading方法步驟,
在命令提示符下執行:
adb forward tcp:6666 tcp:6767
java代碼行
try {
server = new ServerSocket();
server.setReuseAddress(true);
server.bind(new InetSocketAddress(6767));
server.setSoTimeout(TIMEOUT * 1000);
// attempt to accept a connection
client = server.accept();
Globals.socketIn = new Scanner(client.getInputStream());
Globals.socketOut = new PrintWriter(client.getOutputStream(),
true);
// Globals.socketIn.
} catch (SocketTimeoutException e) {
// print out TIMEOUT
e.printStackTrace();
connectionStatus = "Connection has timed out! Please try again";
mHandler.post(showConnectionStatus);
} catch (IOException e) {
Log.e(TAG, "" + e);
} finally {
// close the server socket
try {
if (server != null)
server.close();
} catch (IOException ec) {
Log.e(TAG, "Cannot close server socket" + ec);
}
}
但得到超時異常。讓我知道它有什麼問題。
,這裏是我的logcat有效地處理它是定義一個連接超時,後來用嘗試捕捉block.Hope這將有助於處理它
09-25 16:57:59.299: W/System.err(20521): java.net.SocketTimeoutException
09-25 16:57:59.299: W/System.err(20521): at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:108)
09-25 16:57:59.304: W/System.err(20521): at java.net.ServerSocket.implAccept(ServerSocket.java:202)
09-25 16:57:59.304: W/System.err(20521): at java.net.ServerSocket.accept(ServerSocket.java:127)
09-25 16:57:59.304: W/System.err(20521): at com.example.usbpccomminication.SocketMain$1.run(SocketMain.java:90)
09-25 16:57:59.304: W/System.err(20521): at java.lang.Thread.run(Thread.java:856)
09-25 16:57:59.309: W/System.err(20521): Caused by: libcore.io.ErrnoException: accept failed: EAGAIN (Try again)
09-25 16:57:59.309: W/System.err(20521): at libcore.io.Posix.accept(Native Method)
09-25 16:57:59.309: W/System.err(20521): at libcore.io.BlockGuardOs.accept(BlockGuardOs.java:55)
09-25 16:57:59.309: W/System.err(20521): at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:98)
09-25 16:57:59.314: W/System.err(20521): ... 4 more
什麼問題?你設置一個超時,超時過期,你有異常。沒有人在超時間隔內連接。你期待他們? – EJP 2014-09-25 12:21:16
這個問題已經被問和回答[這裏] [1] [1]:http://stackoverflow.com/questions/15608499/getting-java-net-sockettimeoutexception-connection-timed-out -in-android – 2014-09-25 12:38:18
我也嘗試擴大或刪除時間間隔,但不工作.. – 2014-09-25 12:39:10