I recently encountered the following error in my program:
11-18 12:30:30.259: W/System.err(21368): java.net.SocketTimeoutException: Connection timed out 11-18 12:30:30.259: W/System.err(21368): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method) 11-18 12:30:30.259: W/System.err(21368): at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:357) 11-18 12:30:30.259: W/System.err(21368): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:204) 11-18 12:30:30.259: W/System.err(21368): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:437) 11-18 12:30:30.259: W/System.err(21368): at java.net.Socket.connect(Socket.java:1002) 11-18 12:30:30.259: W/System.err(21368): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75) 11-18 12:30:30.259: W/System.err(21368): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48) 11-18 12:30:30.269: W/System.err(21368): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322) 11-18 12:30:30.269: W/System.err(21368): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89) 11-18 12:30:30.269: W/System.err(21368): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285) 11-18 12:30:30.269: W/System.err(21368): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267) 11-18 12:30:30.269: W/System.err(21368): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205) 11-18 12:30:30.269: W/System.err(21368): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:614) 11-18 12:30:30.269: W/System.err(21368): at com.example.simplevider.SimpleVideo$4.run(SimpleVideo.java:122) 11-18 12:30:30.279: W/System.err(21368): at java.lang.Thread.run(Thread.java:1019)
The function that generated this error is as follows:
private void sendStuff() { Log.e("sendStuff", "======================================"); new Thread(new Runnable() { @Override public void run() { final int BUFFER_SIZE = 4096; try { File uploadFile = new File(existingFileName); System.out.println("File to upload: " + existingFileName); URL url = new URL(URL); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setUseCaches(false); httpConn.setDoOutput(true); httpConn.setRequestMethod("POST"); httpConn.setReadTimeout(60*1000); httpConn.setConnectTimeout(60 * 1000); // sets file name as a HTTP header httpConn.setRequestProperty("fileName", uploadFile.getName()); httpConn.setRequestProperty("extra-id", uploadFile.getAbsoluteFile().toString()); httpConn.setRequestProperty("extra-id2", uploadFile.getParent()); httpConn.setRequestProperty("extra-id3", uploadFile.length() + ""); OutputStream outputStream = httpConn.getOutputStream(); //<< this is the source of the error FileInputStream inputStream = new FileInputStream(uploadFile); byte[] buffer = new byte[BUFFER_SIZE]; int bytesRead = -1; System.out.println("Start writing data..."); while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } System.out.println("Data was written."); outputStream.close(); inputStream.close(); // always check HTTP response code from server int responseCode = httpConn.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // reads server response BufferedReader reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream())); String response = reader.readLine(); System.out.println("Server response: " + response); } else { System.out.println("Server returned non-OK code: " + responseCode); } } catch (Exception e) { e.printStackTrace(); sendStuff(); } } }).start(); }
This function works fine in regular JAVA, but when copying to Android it makes java.net.SocketTimeoutException: Connection timed out , and I donβt know why.
source share