CN - Exp5 - Socket Programming
CN - Exp5 - Socket Programming
Experiment No: 5
Date of Performance:
Roll No:
THEORY:
Java Socket Programming
o Java Socket programming is used for communication between the applications running
on different JRE.
o Java Socket programming can be connection-oriented or connection-less.
o Socket and ServerSocket classes are used for connection-oriented socket programming
and DatagramSocket and DatagramPacket classes are used for connection-less socket
programming.
#Socket class
A socket is simply an endpoint for communications between the machines. The Socket
class can be used to create a socket.
#ServerSocket class
The ServerSocket class can be used to create a server socket. This object is used to
establish communication with the clients.
Creating Server:
To create the server application, we need to create the instance of ServerSocket class. Here, we
are using 6666 port number for the communication between the client and server. You may also
choose any other port number. The accept() method waits for the client. If clients connects with
the given port number, it returns an instance of Socket.
ServerSocket ss=new ServerSocket(6666);
Socket s=ss.accept();//establishes connection and waits for the client
Creating Client:
To create the client application, we need to create the instance of Socket class. Here, we need to
pass the IP address or hostname of the Server and a port number. Here, we are using "localhost"
because our server is running on same system.
Socket s=new Socket("localhost",6666);
Code:
MyServer.java file
import java.io.*; import
java.net.*; public class
MyServer
public static void main(String[] args){
try
{
ServerSocket ss=new ServerSocket(6666);
Socket s=ss.accept();//establishes connection
DataInputStream dis=new DataInputStream(s.getInputStream());
String str=(String)dis.readUTF();
System.out.println("message= "+str);
ss.close();
}
catch(Exception e){System.out.println(e);}
}
}
MyClient.java file
import java.io.*;
import java.net.*;
public class MyClient
{
public static void main(String[] args)
{
try
{
Socket s=new Socket("localhost",6666);
DataOutputStream dout=new DataOutputStream(s.getOutputStream());
dout.writeUTF("Hello Server");
dout.flush();
dout.close();
s.close();
}catch(Exception e){System.out.println(e);}
}
}
Output:
To execute this program open two command prompts and execute each program at each
command prompt as displayed in the below figures.
First run Myserver.java file in terminal/cmd,
Running MyServer.java
Running MyClient.java
Fig.
Message displayed in MyServer after running MyClient