Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to Run Server Client code using Socket Programming in Java Eclipse?
    primarykey
    data
    text
    <p><strong>Client code</strong>:</p> <pre><code>import java.io.*; import java.net.*; public class SimpleClient { public static void main(String[] args) throws IOException { Socket clientSocket = null; try { clientSocket = new Socket(args[0], 4442); } catch (UnknownHostException e) { System.err.println("Don't know about host: " + args[0] + "."); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for " + "the connection to: " + args[0] + ""); System.exit(1); } BufferedInputStream in; BufferedOutputStream out; try { in = new BufferedInputStream(clientSocket.getInputStream()); out = new BufferedOutputStream(clientSocket.getOutputStream()); } catch (IOException e) { System.out.println(e.toString()); return; } byte[] m_txt = args[1].getBytes(); out.write(m_txt, 0, m_txt.length); out.flush(); byte[] m_rcv = new byte[m_txt.length]; int n = in.read(m_rcv, 0, m_rcv.length); if (n != m_rcv.length) { System.out.println("Some data are lost ..."); } System.out.println(new String(m_rcv)); out.close(); in.close(); clientSocket.close(); } } </code></pre> <p><strong>Server</strong>:</p> <pre><code>import java.io.*; import java.net.*; public class SimpleServer { public static void main(String[] args) throws IOException { boolean listening = true; ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(4442); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(1); } while(listening) { Socket clientSocket = serverSocket.accept(); (new SimpleConHandler(clientSocket)).start(); } serverSocket.close(); } } </code></pre> <p><strong>Connection Handler:</strong></p> <pre><code>import java.io.*; import java.net.*; public class SimpleConHandler extends Thread { private Socket clientSocket; public SimpleConHandler(Socket clientSocket) { this.clientSocket = clientSocket; } public void run() { BufferedInputStream in; BufferedOutputStream out; try { in = new BufferedInputStream(clientSocket.getInputStream()); out = new BufferedOutputStream(clientSocket.getOutputStream()); } catch (IOException e) { System.out.println(e.toString()); return; } try { byte[] msg = new byte[4096]; int bytesRead = 0; int n; while((n = in.read(msg, bytesRead, 256)) != -1) { bytesRead += n; if (bytesRead == 4096) { break; } if (in.available() == 0) { break; } } for(int i=bytesRead; i&gt;0; i--) { out.write(msg[i-1]); } out.flush(); } catch(IOException e1) { System.out.println(e1.toString()); } try { out.close(); in.close(); clientSocket.close(); } catch ( IOException e2 ) {;} } } </code></pre> <p>First i RUN Server, but when i try to RUN Client, the error which i am getting is:</p> <p><strong>Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at SimpleClient.main(SimpleClient.java:11)</strong></p> <p>May be i have to use different consoles to run both the Server and the Client? If so, then please tell me the way. i am using Java Eclipse 1.6 SE.</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.
 

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