Java Program for TCP IP Server and Client

What is TCP/IP?

TCP/IP ( Transmission Control Protocol/Internet Protocol ) is a suite of communication protocols used to interconnect network devices on the internet.

How to implement TCP/IP in java program?

  • Java has a different socket class that must be used for creating server applications.
  • ServerSocket class is used to create servers that listen for either local or remote client programs to connect to them on published ports.

ServerSocket Class

ServerSocket is quite different from normal socket. When creating a ServerSocket, it will register itself with the system having an interest in client connections.

ServerSocket Constructors

Constructors might throw an IOException under adverse conditions. Below are the different constructor types for ServerSocket Class.
ServerSocket(int port)
Creates a server socket on the specified port and queue length of 50.
ServerSocket(int port, int maxQueue)
Creates a server socket on the specified port with a maximum queue length (maxQueue).
ServerSocket(int port, int maxQueue, InetAddress address)
Creates a server socket on the specified port with a maximum queue length on a specified host address.

TCP/IP Server Java program

// TCP/IP Server Program                                                        
import java.io.*;                                                               
import java.net.*;                                                              
                                                                                
class Server                                                                    
{                                                                               
   public static void main(String args[])throws Exception                       
   {                                                                            
        try                                                                     
        {                                                                       
                String line, newLine;                                           
                ServerSocket ss=new ServerSocket(6789);                         
                // Communication Endpoint for the client and server.            
                while(true)                                                     
                {                                                               
                  // Waiting for socket connection                              
                  Socket s=ss.accept();                                         
                  System.out.println("Server Started...");                      
                  // DataInputStream to read data from input stream             
                  DataInputStream inp=new DataInputStream(s.getInputStream());  
                  // DataOutputStream to write data on outut stream             
                  DataOutputStream out = new DataOutputStream(s.getOutputStream());
                  DataInputStream in=new DataInputStream(System.in);            
                  // Rads a line text                                           
                  while(true) {                                                 
                   System.out.println("Press 'q' if you want to exit server");  
                   line = inp.readLine();                                       
                   // Writes in output stream as bytes                          
                   //out.writeBytes(line +'\n');                                  
                   System.out.println("Received from client: " + line);         
                   newLine = in.readLine();                                     
                   if (newLine.equals("q")) {                                   
                    out.writeBytes("Server is down..." +'\n');                  
                    return;                                                     
                   } else {                                                     
                     out.writeBytes(newLine + '\n');                            
                   }                                                            
                  }                                                             
                }                                                               
        }                                                                       
        catch(Exception e)                                                      
        {                                                                       
                                                                                
        }                                                                       
   }                                                                            
}  

TCP/IP Client Java program

// TCP/IP Client program                                                        
import java.io.*;                                                               
import java.net.*;                                                              
class Client                                                                    
{                                                                               
        public static void main(String args[])throws Exception                  
        {                                                                       
                String line, newLine;                                           
                try                                                             
                {                                                               
                        DataInputStream in=new DataInputStream(System.in);      
                        // Communication Endpoint for client and server         
                        Socket cs=new Socket("LocalHost",6789);                 
                        System.out.println("Client Started...");          
                        // DataInputStream to read data from input stream       
                        DataInputStream inp=new DataInputStream (cs.getInputStream());
                        // DataOutputStream to write data on outut stream   
                        DataOutputStream out=new DataOutputStream(cs.getOutputStream());
                        while(true) {                                           
                         newLine = in.readLine();                               
                         if (newLine.equals("q")) {                             
                            out.writeBytes("Client is down..." +'\n');          
                            return;                                             
                         } else {                                               
                           out.writeBytes(newLine + '\n');                      
                         }                                                      
                         line = inp.readLine();                                 
                         System.out.println("Received from server: "+line);     
                        }                                                       
                }                                                               
                catch(Exception e)                                              
                {                                                               
                }                                                               
        }                                                                       
}     
Server Output:
// Compile and Run server program first
$ javac Server.java 
Note: Server.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
$ java Server
Server Started...
Press 'q' if you want to exit server
Received from client: hi
how are you?
Press 'q' if you want to exit server
Received from client: i am fine, how is going
q
Client Output:
// Compile and Run client program when server program is running
$ javac Client.java 
Note: Client.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
$ java Client
Client Started...
hi
Received from server: how are you?
i am fine, how is going
Received from server: Server is down...

Java Examples

GCD and Rational Number Java Program

Java Queue Program using exception

Java Stack Program using exception

Addition of three integers java program

Biggest of three integers java program

Fibonacci numbers java program

Arithmetic Operations Menu java program

Second Smallest Element In Array Java Program

Transpose Of A Matrix Java Program

Java Program to Display triangle of stars (*)

Java Programming Prints Product Tables

Java Program to Display triangle of numbers

Java Program to Get Current Date

Java Program to Find Character Vowel or Consonent

Java Program to Compute HCF and LCM

Java Program to Sum the Command Line Integer Arguments

Java Programm to Multiply the Command Line Integer Arguments

Java Program to Find Multiplication of Command Line Floating Point Numeric Arguments

Java Program to Check String Contains or Not

Java Program to Get Grade Description using Switch

Java Program for CSV File Reader

Java Program to Find Character Frequency Count in String using for each

Java Program to Find Min from Integer Array by Passing Array to Method

Java Program Linear Search

Binary Search Java Program

Ternary Search Java Program

Java Program to Generate Range of Numbers

Java Program to Generate Range of Characters

Java Program to Compute Square Root Value

Java Program to Check Number is Positive or Negative

Java Program to Check Number is Odd or Even

Java Program to Compute Plot Area

Java Program to Convert Number of Days into Years

Java Program to Check a Year is Leap Year, Century Year or Not

Java Program to Check a Character is Digit, Letter or neither digit nor letter

Java Program to Check a Number is Palindrome or not

Java Program to Sum Two Matrix

Java Program to Compute Power

Java Program to Check Number is an Armstrong Number or not

Java Program for Temperature Unit Conversions

Java Program to Generate Random Numbers in Specified Range

Java Program to Compute Sum of Digits and Product of Digits

Java Program to Compute Reverse Number

Java Programming Computes Factorial Value

Java Programming Checks Prime Number or not

Java Program to Compute Harmonic Series

Java Program Generate Floyd's Triangle

Java Program to Reverse String

Java Program to Check Palindrome String or not

Java Program to Open Notepad

Java Program to Search String using RegEx Pattern

Java Program to Search Word in String

Java Program to Get System Environment Variables

Java Program to Get IP Address of Server Name

Java Program for Arrays Sorting and Reverse using sort method

Java Program for Bubble Sorting

Java Program for Selection Sorting

Java Program for Insertion Sorting

Java Program for Merge Sorting

Java Program for Quick Sorting

Java Program for Counting Sort

Java Program for Radix Sorting

Java Program for Sorting Array of Strings

Java Program for String Characters Sorting

Java Program to Sum First N Numbers

Java Program to Product First N Numbers

Java Program to get URL details

Java Program to get URL HTML Content

Java Program to get URL details

Java Program to get URL HTML Content

Privacy Policy  |  Copyrightcopyright symbol2020 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

Email Facebook Google LinkedIn Twitter
^