Java Socket Programming Client Example

Welcome to Java Socket programming example. Every server is a program that runs on a specific system and listens on a specific port. Sockets are bound to the port numbers and when we run any server it just listens on the socket and waits for client requests. For example, tomcat server running on port 8080 waits for client requests and once it gets any client request, it responds to them.

Java Socket Programming

java socket, java socket programming, java socket example

A socket is one endpoint of a two-way communication link between two programs running on the network. The socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent.

In java socket programming example tutorial, we will learn how to write java socket server and java socket client program. We will also learn how server client program read and write data on the socket.

java.net.Socket and java.net.ServerSocket are the java classes that implements Socket and Socket server.

Java Socket Server Example

                                  package com.journaldev.socket;  import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.lang.ClassNotFoundException; import java.net.ServerSocket; import java.net.Socket;  /**  * This class implements java Socket server  * @author pankaj  *  */ public class SocketServerExample {          //static ServerSocket variable     private static ServerSocket server;     //socket server port on which it will listen     private static int port = 9876;          public static void main(String args[]) throws IOException, ClassNotFoundException{         //create the socket server object         server = new ServerSocket(port);         //keep listens indefinitely until receives 'exit' call or program terminates         while(true){             System.out.println("Waiting for the client request");             //creating socket and waiting for client connection             Socket socket = server.accept();             //read from socket to ObjectInputStream object             ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());             //convert ObjectInputStream object to String             String message = (String) ois.readObject();             System.out.println("Message Received: " + message);             //create ObjectOutputStream object             ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());             //write object to Socket             oos.writeObject("Hi Client "+message);             //close resources             ois.close();             oos.close();             socket.close();             //terminate the server if client sends exit request             if(message.equalsIgnoreCase("exit")) break;         }         System.out.println("Shutting down Socket server!!");         //close the ServerSocket object         server.close();     }      }                              

Java Socket Client

                                  package com.journaldev.socket;  import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException;  /**  * This class implements java socket client  * @author pankaj  *  */ public class SocketClientExample {      public static void main(String[] args) throws UnknownHostException, IOException, ClassNotFoundException, InterruptedException{         //get the localhost IP address, if server is running on some other IP, you need to use that         InetAddress host = InetAddress.getLocalHost();         Socket socket = null;         ObjectOutputStream oos = null;         ObjectInputStream ois = null;         for(int i=0; i<5;i++){             //establish socket connection to server             socket = new Socket(host.getHostName(), 9876);             //write to socket using ObjectOutputStream             oos = new ObjectOutputStream(socket.getOutputStream());             System.out.println("Sending request to Socket Server");             if(i==4)oos.writeObject("exit");             else oos.writeObject(""+i);             //read the server response message             ois = new ObjectInputStream(socket.getInputStream());             String message = (String) ois.readObject();             System.out.println("Message: " + message);             //close resources             ois.close();             oos.close();             Thread.sleep(100);         }     } }                              

To test java socket programming of server-client communication, first we need to run SocketServerExample class. When you will run socket server, it will just print "Waiting for client request" and then wait for the client request.

Now when you will run SocketClientExample class, it will send a request to java socket server and print the response message to console.

Here is the output of java socket server SocketServerExample program.

                                  Waiting for the client request Message Received: 0 Waiting for the client request Message Received: 1 Waiting for the client request Message Received: 2 Waiting for the client request Message Received: 3 Waiting for the client request Message Received: exit Shutting down Socket server!!                              

Here is the output of Java socket client SocketClientExample program.

                                  Sending request to Socket Server Message: Hi Client 0 Sending request to Socket Server Message: Hi Client 1 Sending request to Socket Server Message: Hi Client 2 Sending request to Socket Server Message: Hi Client 3 Sending request to Socket Server Message: Hi Client exit                              

That's all for a quick roundup of Socket programming in java. I hope you can get started with java socket server and java socket client programming.

Reference: Oracle Doc

mahhicupok1946.blogspot.com

Source: https://www.journaldev.com/741/java-socket-programming-server-client

0 Response to "Java Socket Programming Client Example"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel