Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid how to reuse Socket?
    primarykey
    data
    text
    <p>how to reuse TCP Socket connection(possible setReuseAddress(true), but not work for me) for download multiple files from Server(Apache, HTTPD) in on connection without disconnect(and connect again).</p> <p>My code below..</p> <pre><code>public class ClientThread implements Runnable { public void run() { try { Log.d("ClientActivity", "C: Connecting..."); SocketAddress sockaddr = new InetSocketAddress(serverIpAddress, SERVERPORT); socket = new Socket(); socket.setReuseAddress(true); socket.setKeepAlive(true); socket.setSoLinger(true, 3000); socket.connect(sockaddr); if (socket.isConnected()) { DataInputStream input = new DataInputStream(socket.getInputStream()); PrintWriter output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); output.println("GET /way/images/profile/1231 HTTP/1.1"); output.println("Host: 192.168.1.2"); output.println("User-Agent: Java"); output.println("Accept: */*"); output.println("Connection: Keep-Alive"); output.println(""); output.flush(); String line; File file = new File("/sdcard/aaa.png"); if (!file.exists()) { file.createNewFile(); } FileOutputStream fileOut = new FileOutputStream(file); System.out.println("Getting first file"); while ( (line = input.readLine()) != null ) { System.out.println(line); fileOut.write(line.getBytes()); } System.out.println("First file finished"); fileOut.flush(); fileOut.close(); output.println("GET /way/images/profile/1231 HTTP/1.1"); output.println("Host: 192.168.1.2"); output.println("User-Agent: Java"); output.println("Accept: */*"); output.println("Connection: Keep-Alive"); output.println(""); output.flush(); file = new File("/sdcard/aaa1.png"); if (!file.exists()) { file.createNewFile(); } fileOut = new FileOutputStream(file); System.out.println("Getting second file"); while ( (line = input.readLine()) != null ) { System.out.println(line); fileOut.write(line.getBytes()); } System.out.println("Second file finished"); fileOut.flush(); fileOut.close(); input.close(); output.close(); } Log.d("ClientActivity", "C: Closed."); } catch (Exception e) { Log.e("ClientActivity", "C: Error", e); connected = false; } finally { try { Log.d("ClientActivity", "Socket: Closed."); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } </code></pre> <p>Thanks...</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload