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

