Java Socket Programming

Java Socket Programming

This article depicts an exceptionally essential one-way Client and Server setup where a Client interfaces, sends messages to server and the server demonstrates them utilizing attachment association. There’s a great deal of low-level stuff that necessities to occur for these things to work however the Java API organizing bundle ( deals with the majority of that, making system programming simple for developers.


Client Side Programming

Establish a Socket Connection

To interface with other machine we require an attachment association. An attachment association implies the two machines have data about one another’s system area (IP Address) and TCP port.The class speaks to a Socket. To open an attachment:

Socket socket = new Socket(“”, 5000);

  • First contention – IP address of Server. ( is the IP address of localhost, where code will keep running on single independent machine).
  • Second contention – TCP Port. (Just a number addressing which application to continue running on a server. For instance, HTTP keeps running on port 80. Port number can be from 0 to 65535)


To convey over an attachment association, streams are utilized to both information and yield the information.

Closing the connection

The attachment association is shut expressly once the message to server is sent.

In the program, Client continues perusing contribution from client and sends to the server until “Over” is composed.


Server Programming

Establish a Socket Connection

To compose a server application two attachments are required.

  • A ServerSocket which sits tight for the customer demands (when a customer makes another Socket())
  • A plain old Socket attachment to use for correspondence with the customer.


getOutputStream() strategy is utilized to send the yield through the attachment.

Close the Connection

After finishing,  it is critical to close the association by shutting the attachment and also input/yield streams.

Important Points

  • Server application makes a ServerSocket on a particular port which is 5000. This starts our Server tuning in for client requests coming in for port 5000.
  • By then Server makes another Socket to talk with the client.
socket = server.accept()
  • The acknowledge() technique blocks(just stays there) until the point when a customer interfaces with the server.
  • At that point we take contribution from the attachment utilizing getInputStream() strategy. Our Server continues getting messages until the point that the Client sends “Over”.
  • After we’re done we close the relationship by closing the connection and the data stream.
  • To run the Client and Server application on your machine, incorporate them two. At that point previously run the server application and after that run the Client application.

To run on Terminal or Command Prompt

Open two windows one for Server and another for Client

1. First run the Server application as ,

$ java Server


Server started
Waiting for a client …

2. At that point run the Client application on another terminal as,

$ java Client

It will appear – Connected and the server acknowledges the customer and shows,

Client accepted

3 . At that point you can begin composing messages in the Client window. Here is an example contribution to the Client


I made my first socket connection


Which the Server simultaneously receives and shows,


I made my first socket connection
Closing connection


Notice that sending “Over” shuts the association between the Client and the Server simply like said previously.

If you’re using Eclipse or likes of such-

  • Gather them two on two distinct terminals or tabs
  • Run the Server program first
  • At that point run the Client program
  • Type messages in the Client Window which will be gotten and appeared by the Server Window at the same time.
  • Type Over to end.

Leave a Reply

Your email address will not be published. Required fields are marked *