Android获取java.net.SocketTimeoutException
我正在windows pc和android aap之间建立串行通信 以下是我遵循的步骤 用于涉水方法 在命令提示符下执行:Android获取java.net.SocketTimeoutException,java,android,sockets,serversocket,Java,Android,Sockets,Serversocket,我正在windows pc和android aap之间建立串行通信 以下是我遵循的步骤 用于涉水方法 在命令提示符下执行: adb forward tcp:6666 tcp:6767 java代码行 try { server = new ServerSocket(); server.setReuseAddress(true); server.bind(new InetSocketAddress(6767));
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);
}
}
但是得到超时异常。让我知道它有什么问题
这是我的日志
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
有效处理它的一种方法是定义一个连接超时,然后使用try-catch块来处理它。希望这会有所帮助
HttpUrlConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(30000); //set the timeout in milliseconds
//This is the average time interval
什么问题?你设置了一个超时,超时过期了,你得到了异常。没有人在超时间隔内连接。你希望他们这样做吗?这个问题已经被问到并回答了[here][1][1]:我也尝试过扩展或删除时间间隔,但没有效果..我没有连接到web服务器,而是连接到adb..@EJP我做错了什么?