This article describes the basic client-server connection where a client connects, a server sends a message to the client and the client displays the message using a socket connection. A client program sockets establish a connection with the server socket of server application then server socket connects with internal sockets in the server application.
Client-Side Program
Client program uses Socket class to establish a connection with a server. Socket object needs the address of the server and the port number of the server.
Java
// Client program import java.io.*; import java.net.*; class GFG { // driver function public static void main(String[] args) { try { // Create socket object by passing id address // and port number establish connection Socket socket = new Socket( "localhost" , 1346 ); System.out.println( "Connected Successfully....." ); // Buffer reader to get all the input stream BufferedReader bs = new BufferedReader( new InputStreamReader(socket.getInputStream())); System.out.println( "Response from Server....." ); // Print response from server System.out.println( "Client Side : " + bs.readLine()); // Close the connection socket.close(); } catch (UnknownHostException e) { // Catch block for IP errors System.out.println( "IP not found for" + e); } catch (IOException e) { // Catch block for data stream errors System.out.println( "Not found data for socket" + e); } } } |
Server-Side Program
Server program uses a Server Socket class to establish a connection with the client. Server Socket object needs the port number.
Java
// Server program import java.io.*; import java.net.*; class GFG { public static void main(String[] args) { try { // establish connection ServerSocket serversocket = new ServerSocket( 1346 ); System.out.println( "waiting for request...." ); // Socket object to accept all the connections Socket socket = serversocket.accept(); System.out.println( "Request Accepted..." ); // Printstream to print all the data PrintStream ps = new PrintStream(socket.getOutputStream()); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); System.out.println( "Input the data at the server..." ); // Printing bufferedreader data ps.print(br.readLine()); socket.close(); serversocket.close(); } catch (IOException e) { // Catch block for data stream errors System.out.println( "Not found data for socket" + e); } } } |