In this example, the client connects to the server and the server returns a "canned" message and breaks the connection. Thus, the client and server programs function at the "Hello, World!" level.
The important functionality of this client is located in the
runClient
method. A minimal user interface is created in the constructor, and the program is driven from themain
method.Notice the nearly identical structure of the minimal server and client programs.
import java.net.*; import java.io.*; import java.util.*; import java.awt.*; import java.awt.event.*; public class Client_Basic extends Frame implements WindowListener { Socket connection; InputStream inStream; DataInputStream inDataStream; TextArea logDisplay; String message; public Client_Basic () { super ( "Client_Basic " ); logDisplay = new TextArea ( 40, 10 ); add ( "Center", logDisplay ); resize ( 400, 300 ); show (); } // end Client_Basic constructor // ************** public void runClient ( ) { String host; try { try { InetAddress here = InetAddress.getLocalHost (); host = here.getHostName (); connection = new Socket ( host, 8901 ); logDisplay.setText ( "Socket created: connecting to server on "+host+"\n" ); } catch (UnknownHostException e) { logDisplay.setText ( "Failed to create socket to server\n" ); } inStream = connection.getInputStream (); inDataStream = new DataInputStream ( inStream ); logDisplay.appendText ( "InputStream created\n" ); logDisplay.appendText ( "Text received from server: \n " ); boolean more = true; try { while ( true ) { message = inDataStream.readUTF (); logDisplay.appendText ( message+"\n" ); } // end while } // end try for input catch ( EOFException except ) { connection.close (); logDisplay.appendText ( "Connection closed\n" ); } // end catch catch ( IOException except ) { System.out.println ( "IO Exception"); except.printStackTrace (); } // end catch } // end try for connection catch ( IOException except ) { System.out.println ( "Network Exception"); except.printStackTrace (); } // end catch } // end runClient // ************** public static void main ( String [ ] args ) { Client_Basic client = new Client_Basic (); client.runClient (); client.addWindowListener ( client ); } // end main //*********** Utility Methods *********** //*********** Interface Methods *********** //**** WindowListener methods public void windowActivated ( WindowEvent e ) { } public void windowDeactivated ( WindowEvent e ) { } public void windowOpened ( WindowEvent e ) { } public void windowClosed ( WindowEvent e ) { } public void windowClosing ( WindowEvent e ) { this.hide (); this.dispose (); System.exit(0); } public void windowIconified ( WindowEvent e ) { } public void windowDeiconified ( WindowEvent e ) { } } // end Client_Basic