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);         }     } } |