Programming Tips - Java: How can I do two-way communication on a socket in Java?

Date: 2013mar28 Language: Java Keywords: TCP/IP Q. Java: How can I do two-way communication on a socket in Java? With a timeout. A. Use Java's Socket class like this:
// Helper function private void closeAll(Socket socket, OutputStream out, BufferedReader in) { try { if (out != null) out.close(); if (in != null) in.close(); if (socket != null) socket.close(); // close the socket last } catch (Exception e) { } } boolean socketDialog(final String host, final int port, final int timeoutseconds, final String sendthis) { Socket socket = null; OutputStream os = null; BufferedReader in = null; try { socket = new Socket(); final SocketAddress addr = new InetSocketAddress(host, port); socket.connect(addr, timeoutseconds * 1000); os = socket.getOutputStream(); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // Send what you want os.write(sendthis.getBytes()); // Now, get the reply String line; while ((line = in.readLine()) != null) { System.out.println("reply: " + line); } closeAll(socket, os, in); } catch (Exception e) { closeAll(socket, os, in); System.out.println("socketDialog problem " + e.toString()); return false; } return true; } void exampleUse() { socketDialog("google.com", 80, 15, "GET /\r\n\r\n"); }