Simple Socket Programming in java

 In this Java network programming tutorial, you will learn how to develop a simple socket server program.


Server.java

  package simple_tcp;	

  import java.io.BufferedReader;
  import java.io.InputStreamReader;
  import java.io.OutputStreamWriter;
  import java.io.PrintWriter;
  import java.net.ServerSocket;
  import java.net.Socket;

  public class Server {

      public Server() throws Exception {

          ServerSocket server_socket = new ServerSocket(2020); //opening a new port
          System.out.println("Port 2020 is open.");

          Socket socket = server_socket.accept();
          System.out.println("Client " + socket.getInetAddress() + " has connected.");

          // I/O buffers:
          BufferedReader in_socket = new BufferedReader(new InputStreamReader (socket.getInputStream()));
          PrintWriter out_socket = new PrintWriter(new OutputStreamWriter (socket.getOutputStream()), true);

          out_socket.println("Welcome!"); // send "Welcome" to the Client
          String message = in_socket.readLine();
          System.out.println("Client says: " + message); // display Client's message in the console

          socket.close();
          System.out.println("Socket is closed.");
      }

      public static void main(String[] args) {
          try {
              new Server();
          } catch (Exception e) {
              // TODO: handle exception
              e.printStackTrace();
          }
      }
  }

Client.java

  package simple_tcp;

  import java.io.BufferedReader;
  import java.io.InputStreamReader;
  import java.io.OutputStreamWriter;
  import java.io.PrintWriter;
  import java.net.Socket;

  public class Client {

      public Client() throws Exception {

          Socket socket = new Socket("localhost",2020);
          System.out.println("Successful connection to the server.");

          // I/O streams
          BufferedReader in_socket = new BufferedReader (new InputStreamReader (socket.getInputStream()));
          PrintWriter out_socket = new PrintWriter (new OutputStreamWriter (socket.getOutputStream()), true);

          String message = in_socket.readLine();
          System.out.println("Server says: " + message);
          out_socket.println("Thanks!");

          socket.close();
          System.out.println("Socket closed.");

      }

      public static void main(String[] args) {
          try {
              new Client();
          } catch (Exception e) {
              // TODO: handle exception
              e.printStackTrace();
          }
      }
  }

Output :

  //Server
  Port 2020 is open.
  Client /127.0.0.1 has connected.
  Client says: Thanks!
  Socket is closed.
  //Client
  Successful connection to the server.
  Server says: Welcome!
  Socket closed.	

Popular Posts

java:17: error: local variables referenced from a lambda expression must be final or effectively final count ++ ;

Family Tree Project in Java

Creating basic tic tac toe android app using java