SlideShare une entreprise Scribd logo
1  sur  71
MANAKULA VINAYAGAR INSTITUTE OF
TECHNOLOGY
KALITHEERTHALKUPPAM , MADAGADIPET , PUDUCHERRY-605 107
DEPARTMENT OF INFORMATON TECHNOLOGY
LAB MANUAL
FOR
COMPUTER NETWORKS
MANAKULA VINAYAGAR INSTITUTE OF TECHNOLOGY
Kalitheerthaalkuppam, Puducherry – 605 107
Department of Information Technology
List of Experiments
COMPUTER NETWORKS LAB (2012-13 EVEN SEM)
[IT P63]
Year/Sem: III/VI Batch: 2010-2014
Sl.
No
Proposed
Date
Actual
Date
Experiment Proposed
Sessions
1 21.12.12 Study of Socket Programming
1
2 21.12.12 Finding The IP Address
TCP Communication
3 26.12.12 TCP-One Way Communication
1
4 26.12.12 TCP-Two Way Communication
UDP Communication
5 02.01.13 UDP-One Way Communication
1
6 02.01.13 UDP-Two Way Communication
Socket Programming
7 09.01.13 Echo Command
1
8 09.01.13 Ping Command
9 23.01.13 Talk Command 1
File Transfer
10 23.01.13 Using TCP 1
Sliding Window Protocol
11 30.01.13 1 – Bit Sliding Window Protocol 1
Casting
12 06.02.13 Broadcasting 1
13 06.02.13 Cyclic Redundancy Check 1
Routing Algorithms
14 13.02.13 Shortest Path Routing 1
15
20.02.13 Remote Method Invocation-
Factorial of A Number
1
16 27.02.13 Remote Command Execution
1
17 27.02.13 Study of NS2
Staff-in-Charge HOD
STUDY THE COMMANDS OF SOCKET PROGRAMMING
AIM
To study the commands of the socket programming.
IMPLEMENTATION OF SOCKET PROGRAMMING
In this two modules are there:
1. Server.java
2. Client.java
These modules are used to establish a point to point communication between two process using
socket programming. The creation of socket can be achieved by the constructors like ServerSocket(),
Socket(), these processes then communicate using readline and println().
TCP/IP PROTOCOL
TCP/IP Sockets are used to implement, reliable, bidirectional, persistent, point to point stream
based connection between host on the internet. There are 2 types of sockets available:
1. ServerSocket and 2. Socket. They connect to them on published ports when the ServerSocket
created it will register itself with the system as having an internet in client connection. The
constructor for the ServerSocket having clients connection it can leave pending before it should be
refers connections. The default is 50 the constructor might through IOException Otherwise Try{…..}
Catch(IOException){…..} should be used .
CLIENT SOCKET
The creation of socket is done through the constructor of the class socket. The creation of the
socket objects implicates establishes a connection between the client and the server.
CONSTRUCTOR OF SERVERSOCKET
ServerSocket(int Port) Creates ServerSocket on the specified port with
a queue length of 50.
ServerSocket(int Port,int Maxqueue). Creates a ServerSocket on the specified port
with a maximum queue length of maxqueue.
ServerSocket(int Port, int Maxqueue,Inet Addres
local Address)
Creates a SeverSocket on the specified with a
maximum queue length of the maxqueue on a
multihost,local address specifies the IP Address.
The ServerSocket has one additional method called accept() which is a blocking call that will wait for
a client to initiate communication.
Socket(String hostname, int Port) Creates a Socket contaion the local host to the
n,amed host the port can throw an unknown host
exception or an IOException.
Socket(Inet Address,IPAddress,int port) Creates a Socket using a preexisting Inet Address
object and a port can throw an IOException.
METHOD
Inet Address get
Inet Address()
Return InetAddress, associated with the socket
object.
Inet getport() Return the remote port to which this socket
object is connected.
Inet getLocalport() Return the localport to which this socket object
is connected.
The following I/O Streams related methods are also available in the socket.
InputStream getInput Stream() Return the InputStream associated with the
invoking socket.
OutputStream get outputstream() Return the output stream associated with the
invoking socket.
Void close Close both the inputstream and outputstream.
INET ADDRESSING
Every computer on the internet has an address. An internet is a number that uniquely identifies
each computer on the net. There are 32 bit in an IP Address and we often refer to them has sequence
of four number between 0 and 255 separated by the data. This makes them easier to remember
because they are not randomly assigned, they are hierarchically assigned. The first few bits define
which class of network lettered A,B,C,D or E . The address represents internet or on a class C
network since there are 2 million networks in class C .
Static Inet Address get localhost() throws
unknown host Exception
Return the Inet address object that represents
the localhost
Static Inet Address get by name(String host
name)throws unknown host Exception
Returns on an InetAddress for a host name
passed to it
Static Inet Address get all by name host
Exception
Return an array of Inet Address that represent
all of the address,meta particular name.
SOME OTHER METHOD
Boolean equals(object other) Return true if this object has same name
internet address as other.
Byte[]get address() Return a four element byte array represent the
object.
String get Host Address() Return a string that represents that host
address associated with InetAddress object
Int hascode() Return the hashcode of the invoking object
Boolena is multicost address Return true if this internet address is a
multicost address otherwise it return false.
FINDING THE IP ADDRESS
AIM
To write a java program to find the IP address of the system.
ALGORITHM
1. Start the program
2. Create an object for the class InetAddress.
3. An IP address of the system is retrieved using the member function getLocalHost().
4. System number is displayed using the member function getHostName().
5. The IP address of other system can be retrieved by using the member function getByName(),
passing the system number as parameter.
6. Stop the program.
FINDING IP ADDRESS
SOURCE CODE
import java.io.*;
import java.net.*;
class address
{
public InetAddress ip;
public static void main(String args[])throws UnknownHostException
{
// To get local machine‟s IP address
InetAddress ip=InetAddress.getLocalHost();
System.out.println("n IP address is :"+ip);
// Gets the local machine‟s name
String s1=ip.getHostName();
System.out.println("system number is:"+s1);
//To receive the other machine‟s name
InetAddress ip1=InetAddress.getByName("system 10");
System.out.println("n name of other system is :"+ip1);
}
}
OUTPUT
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac address.java
D:ChitraJava>java address
IP address is : student1/172.16.11.136
system number is: student1
RESULT
Thus the java program is executed and output is verified successfully.
TCP-ONE WAY COMMUNICATION
AIM
To write a java program to implement one way communication using TCP (Transmission
Control Protocol).
ALGORITHM
SERVER
1. Start the program.
2. Import java.net package and other packages.
3. Create objects for ServerSocket, Socket, DataInputStream and PrintStream to transfer the
data.
4. Using PrintStream transfer the data in OutputStream via a port.
5. Run an loop to send the data from server until an “end or exit” string is transferred.
6. If “end or exit” is encountered, close the socket and exit the program.
7. Stop the program.
CLIENT
1. Start the program.
2. Import java.net package and other packages.
3. Create objects for Socket and DataInputStream to receive the server data.
4. Run an loop to receive the data from server and store it in a string using DataInputStream.
5. Display the server data and exit when an “end or exit” message is encountered.
6. Stop the program.
TCP ONE WAY COMMUNICATION
SOURCE CODE
CLIENT
import java.io.*;
import java.net.*;
class tcp1client
{
public static void main(String args[])throws IOException
{
Socket s=new Socket("localHost",8000);
//Used to get input from keyword
DataInputStream in=new DataInputStream(s.getInputStream());
while(true)
{
// Reads the input from keybroad
String str=in.readLine();
System.out.println("Message Received:"+str);
if(str.equals("end"))
{
//Close the socket
s.close();
break;
}
}
}
}
SOURCE CODE
SERVER
import java.io.*;
import java.net.*;
class tcp1server
{
public static void main(String a[])throws IOException
{
ServerSocket ss=new ServerSocket(8000);
//Opens the socket
Socket s=ss.accept();
DataInputStream in=new DataInputStream(System.in);
PrintStream dos=new PrintStream(s.getOutputStream());
while(true)
{
System.out.println("enter message to send:");
//Reads the input from the input device
String str=in.readLine();
dos.println(str);
//checks for end of message
if(str.equals("end"))
{
//Closes the socket
ss.close();
break;
}
}
}
}
OUTPUT
SERVER
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac server.java
D:ChitraJava>java server
enter message to send:
GOOD MORNING HAVE A NICE DAY
enter message to send:end
D:ChitraJava>
CLIENT
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava> javac client.java
D:ChitraJava> java client
Message Received:GOOD MORNING HAVE A NICE DAY
Message Received:end
D:ChitraJava>
RESULT
Thus the java program is executed and output is verified successfully.
TCP-TWO WAY COMMUNICATION
AIM
To write a java program to implement two way communication using TCP (Transmission
Control Protocol).
ALGORITHAM
SERVER
1. Start the Program.
2. Import java.net package and other packages.
3. Create objects for ServerScoket, Socket and PrintStream to transfer the Server data.
4. Create objects for Scoket and DataInputStream to receive the client data.
5. Using PrintStream transfer the data in OutputStream via a port.
6. Run an loop to send the data from server until an ”end or exit” String is transferred.
7. Using same loop receive the data from server and store it in a string using DataInputStream.
8. Print the received client data and exit when an ”end or exit” message is encountered.
9. Stop the program.
CLIENT
1. Start the program.
2. Import java.net package and other packages.
3. Create objects for Socket, Socket and PrintStream to transfer the client data.
4. Create objects for Socket and DataInputStream to receive the server data.
5. Using PrintStream transfer the data in OutputStream via a port.
6. Run an loop to send the data from server until an “end or exit” string is transferred.
7. Using same loop receive the data from server and store it in a string using DataInputStream.
8. Print the received server data and exit when an “end or exit” message is encountered.
9. Stop the program.
TCP TWO WAY COMMUNICATION
SOURCE CODE
CLIENT
import java.io.*;
import java.net.*;
import java.lang.*;
class tcp2client
{
public static void main(String a[])throws IOException
{
//Creates object for socket
Socket s=new Socket("LocalHost",8000);
DataInputStream in=new DataInputStream(s.getInputStream());
DataInputStream inn=new DataInputStream(System.in);
PrintStream dos=new PrintStream(s.getOutputStream());
while(true)
{
//Reads the input from the input device
String str=in.readLine();
System.out.println("msg received:"+str);
//Checks for end of message
if(str.equals("end"))
{
//Closes the socket
s.close();
break;
}
System.out.println("enter the msg to send: ");
//Reads the message to send
String str1=inn.readLine();
dos.println(str1);
//Checks for end of message
if(str1.equals("end"))
{
//Closes the socket
s.close();
break;
}
}
}
}
SERVER
import java.io.*;
import java.net.*;
import java.lang.*;
class tcp2server
{
public static void main(String a[])throws IOException
{
ServerSocket ss=new ServerSocket(8000);
//Opens the socket
Socket s=ss.accept();
PrintStream dos=new PrintStream(s.getOutputStream());
DataInputStream in=new DataInputStream(System.in);
DataInputStream inn=new DataInputStream(s.getInputStream());
while(true)
{
System.out.println("enter the msg to send: ");
//Reads the input
String str=in.readLine();
dos.println(str);
//Checks for end of message
if(str.equals("end"))
{
//Closes the socket
ss.close();
break;
}
String str1=inn.readLine();
System.out.println("msg received"+str1);
if(str1.equals("end"))
{
ss.close();
break;
}
}
}
}
OUTPUT
SERVER
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac server1.java
D:ChitraJava>java server1
enter the msg to send:
HAI FRIENDS
msg received:HELLO
enter the msg to send:end
D:ChitraJava>
CLIENT
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac client1.java
D:ChitraJava>java client1
msg received:HAI FRIENDS
enter the msg to send:
HELLO
enter the msg to send:end
D:ChitraJava>
RESULT
Thus the java program is executed and output is verified successfully.
UDP-ONE WAY COMMUNICATION
AIM
To write a program in java to perform one way message transfer using the User Datagram
Protocol (UDP).
ALGORITHM
SERVER
1. Start the program.
2. Import java.net and other necessary packages.
3. Create objects for DatagramSocket and DatagramPacket to send the packet from server.
4. Create an object for InetAddress of the LocalHost.
5. Get user input data and convert it into bytes and send the bytes using DatagramPacket and
DatagramSocket.
6. Get user input in an loop and send data until the user input sends “end”.
7. If end is encountered, exit sending data.
8. Stop the program.
CLIENT
1. Start the program.
1. Import java.net and other necessary Packages.
2. Create objects for DatagramSocket and Datagrampacket to receive the packet data from
server.
3. Create an object for InetAddress of the LocalHost.
4. Receive the data from sender using receive() method and store it to a string.
5. Run an loop and store the data in the string until the received message is “end”.
6. Print the received message.
7. Stop the program.
UDP ONE WAY COMMUNICATION
SOURCE CODE
SENDER
import java.io.*;
import java.net.*;
class udp1sender
{
DatagramSocket ds;
DatagramPacket dp;
byte buff[]=new byte[1024];
String str,str1;
boolean i=true;
public void send() throws IOException
{
while(i)
{
ds=new DatagramSocket();
DataInputStream in=new DataInputStream(System.in);
System.out.println("Enter the msg:");
str=in.readLine();
buff=str.getBytes();
dp=new DatagramPacket(buff,buff.length,InetAddress.getLocalHost(),8000);
ds.send(dp);
System.out.println("do u want to continue:yes or no");
str1=in.readLine();
if(str1.equals("yes"))
{
i=true;
}
else
{
i=false;
}
}
}
public static void main(String args[])throws IOException
{
udp1sender se=new udp1sender();
se.send();
}
}
RECEIVER
import java.io.*;
import java.net.*;
class udp1receiver
{
DatagramSocket ds;
DatagramPacket dp;
byte buff[]=new byte[1024];
String str;
public void receive() throws IOException
{
ds=new DatagramSocket(8000);
while(true)
{
dp=new DatagramPacket(buff,buff.length);
ds.receive(dp);
str=new String (dp.getData(),0,0,dp.getLength());
System.out.println(str);
System.out.println("InetAddress:"+dp.getAddress());
}
}
public static void main(String args[])throws Exception
{
udp1receiver re=new udp1receiver();
re.receive();
}
}
OUTPUT
SERVER
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac udp1sender.java
D:ChitraJava>java udp1sender
Enter the msg:
IT KINGS
do u want to continue:yes or no
no
D:ChitraJava>
CLIENT
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac udp1receiver.java
D:ChitraJava>java udp1receiver
IT KINGS
InetAddress:/172.16.11.99
D:ChitraJava>
RESULT
Thus the java program is executed and output is verified successfully.
UDP-TWO WAY COMMUNICATION
AIM
To write a java program to perform two way message transfer using the user datagram
protocol(UDP).
ALGORITHM
SERVER
1. Start the program.
2. Import java.net and other necessary packages.
3. Create objects for DatagramSocket and DatagramPacket to receive packet data from
client.
4. Create an object for InetAddress of the LocalHost.
5. Receive the client data using receive() method and store it in a string.
6. Run a loop and store the data in the string until the received message is “end”.
7. Print the received client‟s message.
8. Get user input in the same loop and send the data until the user input is “end”.
9. Convert the user input into bytes and send the byte using DatagramPacket and
DatagramSocket.
10. If end is encountered, exit the sending data to client.
11. Stop the program.
CLIENT
1. Start the program.
2. Import java.net and other necessary packages.
3. Create objects for DatagramSocket and DatagramPacket to receive packet data from
server.
4. Create an object for InetAddress of the LocalHost.
5. Receive the server data using receive() method and store it in a string.
6. Run a loop and store the data in the string until the received message is “end”.
7. Print the received server‟s message.
8. Get user input in the same loop and send data until the user input is end.
9. Convert the user input into bytes and send the byte using DatagramPacket and
DatagramSocket.
10. If end is encountered, exit sending data to server.
11. Stop the program.
UDP TWO WAY COMMUNICATION
SOURCE CODE
SERVER
import java.io.*;
import java.net.*;
class udp2sender
{
public static void main(String a[])throws Exception
{
while(true)
{
DatagramSocket ds=new DatagramSocket();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("enter the msg:");
String msg=br.readLine();
byte bl[]=msg.getBytes();
InetAddress add=InetAddress.getLocalHost();
DatagramPacket dp=new DatagramPacket(bl,bl.length,add,1234);
ds.send(dp);
if(msg.equals("exit"))
System.exit(0);
byte b[]=new byte[255];
DatagramPacket dp1=new DatagramPacket(bl,bl.length);
ds.receive(dp1);
String msg1=new String(dp1.getData());
System.out.println("received msg:" +msg1);
}
}
}
CLIENT
import java.io.*;
import java.net.*;
import java.lang.*;
class udp2receiver
{
public static void main(String a[])throws IOException
{
DatagramSocket ds=new DatagramSocket(1234);
byte b[]=new byte[255];
while(true)
{
DatagramPacket dp=new DatagramPacket(b,b.length);
ds.receive(dp);
String msg=new String(dp.getData());
System.out.println("Msg Received:"+msg);
InetAddress add=dp.getAddress();
int port=dp.getPort();
System.out.println("Enter a line of text to send:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String msg1=br.readLine();
byte b1[]=msg1.getByte();
DatagramPacket dp1=new DatagramPacket(b1,b1.length,add,port);
ds.send(dp1);
if(msg1.equals("exit"))
System.exit(0);
}
}
OUTPUT
SERVER
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac udp2sender.java
D:ChitraJava>java udp2sender
enter the msg:
GOOD MORNING
received msg:HAVE A NICE DAY
enter the msg:end
D:ChitraJava>
CLIENT
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac udp2receiver.java
D:ChitraJava>java udp2receiver
Msg Received:GOOD MORNING
Enter a line of text to send:
HAVE A NICE DAY
Msg Received:end
D:ChitraJava>
RESULT:
Thus the java program is executed and output is verified successfully.
ECHO
AIM
To write a program in java to demonstrate the ECHO command.
ALGORITHM
ECHOSERVER
1. Start the program.
2. Import java.net and other necessary packages.
3. Create objects for DataInputStream, Socket and PrintWriter to receive client message and
send it back.
4. Store the message in a string and print the message using print() method.
5. Send the same received message to the client using PrintWriter and Socket.
6. When the received character is „.‟, then stop sending the data back.
7. Stop the program.
ECHOCLIENT
1. Start the program.
2. Import java.net and other necessary packages.
3. Create objects for ServerSocket and Socket to send the message.
4. Create objects for PrintStream to write message from client to server.
5. Get the user input and store it in a string.
6. Print the string in the Socket using PrintStream to be received by the server.
7. Using the Print() method, receive the client echo message and print it.
8. If the user input is „.‟, then stop sending the data.
9. Stop the program.
ECHO
SOURCE CODE
ECHO SERVER
import java.io.*;
import java.net.*;
class echoserver
{
public static void main(String args[])
{
try
{
Socket s=null;
ServerSocket ss=new ServerSocket(8000);
s=ss.accept();
System.out.println(s);
BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter print=new PrintWriter(s.getOutputStream());
int i=1;
while(i>0)
{
String str=br.readLine();
if(str.equals("."))
break;
System.out.println("msg received by client:"+str);
print.println(str);
print.flush();
}}
catch(IOException e)
{
System.out.println("n error:"+e);
}
}
}
ECHO CLIENT
import java.io.*;
import java.net.*;
class echoclient
{
public static void main(String a[])
{
try
{
Socket s=new Socket("LocalHost",8000);
DataInputStream in=new DataInputStream(System.in);
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
BufferedReader br2=new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter print=new PrintWriter(s.getOutputStream());
System.out.println("n msg to be echo:");
String str=br1.readLine();
print.println(str);
print.flush();
System.out.println(br2.readLine());
}
catch(UnknownHostException e)
{}
catch(IOException e)
{
System.out.println("n error:"+e);
}
}
}
OUTPUT
ECHOCLIENT
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac echoclient.java
D:ChitraJava>java echoclient
msg to be echo:
GOD IS GREAT
GOD IS GREAT
D:ChitraJava>
ECHOSERVER
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac echoserver.java
D:ChitraJava>java echoserver
Socket[addr=/127.0.0.1,port=1623,localport=8000]
msg received by client:GOD IS GREAT
D:ChitraJava>
RESULT
Thus the java program is executed and output is verified successfully.
PING COMMAND
AIM
To write a program in java to demonstrate the usage of PING command.
ALGORITHM
PINGSERVER
1. Start the program.
2. Import java.net and other necessary packages.
3. Initialize the ping server with both sockets as null value.
4. Start the server socket.
5. At the client give the IP address of the server.
6. The client program is then started by starting socket.
7. At the receiver end, the client is pinged.
8. Stop the program.
PINGCLIENT
1. Start the program.
2. Import java.net and other necessary packages.
3. Initialize the ping client with both sockets as null value.
4. Start the socket.
5. Get the IP address of the server.
6. Ping the server.
7. At the receiver end, the server is pinged.
8. Stop the program.
PING COMMAND
SOURCE CODE
PING SERVER
import java.io.*;
import java.net.*;
public class pingserver
{
public static void main(String a[])
{
String line1,line2;
int i;
ServerSocket es;
DataInputStream di;
PrintStream ps;
Socket csoc;
es=null;
csoc=null;
try
{
es=new ServerSocket(9999);
}
catch(Exception e)
{
System.out.println(e);
}
System.out.println("ping server");
try
{
csoc=es.accept();
di=new DataInputStream(csoc.getInputStream());
ps=new PrintStream(csoc.getOutputStream());
for(i=0;i<4;i++)
{
line1=di.readLine();
System.out.println("pinged by client");
ps.println(line1+"reply from host:bytes=3<time<1ms TT<=128");
}
di.close();
ps.close(); }
catch(Exception e)
{
System.out.println(e);
} } }
PING CLIENT
import java.io.*;
import java.net.*;
public class pingclient
{
public static void main(String args[])
{
PrintWriter out=null;
int i,j,k;
BufferedReader networkIn=null;
try
{
System.out.println("enter the IP address:");
DataInputStream in = new DataInputStream(System.in);
String ip = in.readLine();
Socket thesocket = new Socket(ip, 9999);
networkIn = new BufferedReader(new InputStreamReader(System.in));
out = new PrintWriter(thesocket.getOutputStream());
System.out.println("npinging" + ip + "with 32 bytes of datan");
for (i = 0; i < 4; i++)
{
out.println(ip);
out.flush();
String inp = networkIn.readLine();
if (inp != null)
{
for (j = 0; j < 10000; j++)
{
for (k = 0; k < 50000; k++)
{
}
}
System.out.println("reply from" + inp);
}
else
{
for (i = 0; i < 4; i++)
{
for (j = 0; j < 10000; j++)
{
for (k = 0; k < 50000; k++)
{
}
System.out.println("nrequest time out");
}
}
}
}
}
catch (IOException e)
{
for (i = 0; i < 4; i++)
{
for (j = 0; j < 1000; j++)
{
for (k = 0; k < 5000; k++)
{
}
}
System.out.println("nrequest timed out");
}
}
try
{
if(networkIn!=null)
networkIn.close();
if(out!=null)
out.close();
}
catch(Exception e){
System.out.println("nrequested time out");
}
}
}
OUTPUT
PING CLIENT
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac pingclient.java
D:ChitraJava>java pingclient
enter the IP address:
192.168.1.10
pinging192.168.1.10with 32 bytes of data
5
reply from5
8
reply from8
9
reply from9
4
reply from4
D:ChitraJava>
PINGSERVER
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac pingserver.java
D:ChitraJava>java pingserver
ping server
pinged by client
pinged by client
pinged by client
pinged by client
D:ChitraJava>
RESULT
Thus the java program is executed and output is verified successfully.
IMPLEMENTATION OF TALK COMMAND
AIM
To send and receive message from client and server using connection oriented service.
ALGORITHM
SERVER
1. Start the program.
2. Create server and client sockets.
3. Use input streams to get the message from user.
4. Use output stream to send message to the client.
5. Wait for client to display this message and write a new one to be displayed by the server.
6. Display message given at client using input streams read from socket.
7. If in the message given by server or client, the word “end” is encountered, exit both the programs.
8. Stop the program.
CLIENT
1. Start the program.
2. Create a client socket that connects to the required host and port.
3. Using input streams read message given by server and print it.
4. Using input streams, get message from user to be given to the server.
5. Use output streams to write message to the server.
6. Stop the program.
SOURCE CODE
TALKSERVER
import java.io.*;
import java.net.*;
public class talkserver
{
public static void main(String args[])throws Exception
{
ServerSocket ecsvr=null;
String line1,line2;
DataInputStream dis=null;
PrintStream pts=null;
Socket clsckt=null;
BufferedReader in1=null;
ecsvr=new ServerSocket(9999);
System.out.println("TALK SERVER");
System.out.println("----------------------");
clsckt=ecsvr.accept();
dis=new DataInputStream(clsckt.getInputStream());
pts=new PrintStream(clsckt.getOutputStream());
System.out.println("Node successfully connected..");
while(true)
{
line1=dis.readLine();
System.out.println("Message Received");
System.out.println("The Message ="+line1);
in1=new BufferedReader(new InputStreamReader(System.in));
line2=in1.readLine();
if(line2.equals("end"))
{
break;
}
pts.println(line2);
pts.flush();
System.out.println("Message sent successfully");
}
dis.close();
pts.close();
}
}
TALK CLIENT
import java.io.*;
import java.net.*;
public class talkclient
{
public static void main(String args[])
{
PrintWriter out=null;
String line1;
BufferedReader networkln=null;
try
{
Socket theSocket=new Socket("LocalHost",9999);
networkln=new BufferedReader(new InputStreamReader(theSocket.getInputStream()));
BufferedReader userln=new BufferedReader(new InputStreamReader(System.in));
out=new PrintWriter(theSocket.getOutputStream());
System.out.println("TALK CLIENT");
System.out.println("--------------------");
while(true)
{
System.out.println("send message to server: ");
String theLine=userln.readLine();
if(theLine.equals("end"))
break;
out.println(theLine);
out.flush();
System.out.println("message sent successfully");
System.out.println(" ");
System.out.println("message received from talkserver: "+networkln.readLine());
} }
catch(IOException e)
{
System.err.println(e);
} try
{
if(networkln!=null)
networkln.close();
if(out!=null)
out.close();
} catch(Exception e)
{
System.err.println(e);
} } }
OUTPUT
TALKSERVER
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac talkerver.java
D:ChitraJava>java talkserver
TALK SERVER
----------------------
Node successfully connected.
Message Received
The Message =HAI
HI..
Message sent successfully
Message Received
The Message =HOW ARE YOU
I AM FINE
Message sent successfully
Message Received
The Message =K BYE
end
D:ChitraJava>
TALKCLIENT
C:Documents and SettingsMitstaff>cd
C:>cd D:ChitraJava
D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin
D:ChitraJava>javac talkclient.java
D:ChitraJava>java talkclient
TALK CLIENT
--------------------
send message to server: HAI
message sent successfully
message received from talkserver: HI..
send message to server: HOW ARE YOU
message sent successfully
message received from talkserver: I AM FINE
send message to server: K BYE
message sent successfully
send message to server:
end
D:ChitraJava>
RESULT
Thus the java program is executed and output is verified successfully.
IMPLEMENTATION OF FTP
AIM:
To write a java program to perform “File Transfer Protocol”.
ALGORITHM
SERVER SIDE
1. Import the java packages and create class fileserver.
2. String of argument is passed to the args[].
3. Create a new server socket and bind it to the port.
4. Accept the client connection at the requested port.
5. Get the filename and stored into the BufferedReader.
6. Create a new object class file and readline.
7. If File is exists then FileReader read the content until EOF is reached.
8. Else Print FileName does‟t exits.
9. End of main.
10. End of FileServer class.
CLIENT SIDE
1. Import the java packages and create class fileClient.
2. String of argument is passed to the args[].
3. The connection between the client and server is successfully established.
4. The object of a BufferReader class is used for storing data content which have been
retrieved from socket object s.
5. The content are read and stored in inp until the EOF is reached.
6. The content of file are displayed in displayed in client window and the connection is
closed.
7. End of main.
8. End of Fileclient class.
IMPLEMENTATION OF FTP
SOURCE CODE
SERVER
import java.io.*;
import java.net.*;
public class fileserver1
{
public static void main(String args[])throws IOException
{
ServerSocket s1=null;
try
{
s1=new ServerSocket(1187);
}
catch(IOException u1)
{
System.out.println("could not found port 1187");
System.exit(1);
}
Socket c=null;
try
{
c=s1.accept();
System.out.println("connection frame" +c);
}
catch(IOException e)
{
System.out.println("accept failed");
System.exit(1);
}
PrintWriter out=new PrintWriter(c.getOutputStream(),true);
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("enter the text file name");
String s=sin.readLine();
File f=new File(s);
if(f.exists())
{
BufferedReader in=new BufferedReader(new FileReader(s));
String v;
while((v=in.readLine())!=null)
{
out.write(v);
out.flush();
}
System.out.println("the file send successfully");
in.close();
c.close();
s1.close();
}
}
}
CLIENT
import java.io.*;
import java.net.*;
public class fileclient1
{
public static void main(String args[])throws IOException
{
Socket s=null;
BufferedReader b=null;
try
{
s=new Socket(InetAddress.getLocalHost(),1187);
b=new BufferedReader(new InputStreamReader(s.getInputStream()));
}
catch(Exception u)
{
System.out.println("the file is received");
System.out.println("don't know host");
System.exit(1);
}
String inp;
while((inp=b.readLine())!=null)
{
System.out.println("the content of the file is");
System.out.println(inp);
System.out.println("the file is received successfully");
}
b.close();
s.close();
}
}
OUTPUT:
SERVER
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac fileserver1.java
C:Program FilesJavajdk1.6.0bin>java fileserver1
connection frameSocket[addr=/127.0.0.1,port=1056,localport=1187]
enter the text file name
HAI.txt
the file send successfully
C:Program FilesJavajdk1.6.0bin>
CLIENT
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac fileclient1.java
C:Program FilesJavajdk1.6.0bin>java fileclient1
the content of the file is
GOD LOVE'S EVERY ONE IN THE WORLD.
the file is received successfully
C:Program FilesJavajdk1.6.0bin>
RESULT:
Thus the java program is executed and output is verified successfully.
REMOTE METHOD INVOCATION – FACTORIAL OF A NUMBER
AIM:
To develop a java program for implementing the remote method invocation.
ALGORITHM:
1. Start the program.
2. Establish the connection between the client and the server to calculate the factorial
operation.
3. In implement() it calls the inter() which throws remote exception thrown by fact().
4. In the client URL has been specified and declared as string.
5. It calls the inter() to connect with the implement() and get the result.
6. Stop.
REMOTE METHOD INVOCATION
SOURCE CODE
SERVER
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;
import java.net.*;
public class rmiserver
{
public static void main(String args[]) throws RemoteException
{
try
{
implement i=new implement();
Naming.rebind("server",i);
System.out.println("server reasdy");
}
catch(Exception e)
{
System.out.println("exception:"+e);
}
}
}
CLIENT:
import java.io.*;
import java.rmi.*;
import java.rmi.registry.*;
import java.net.*;
public class rmiclient
{
public static void main(String args[]) throws RemoteException
{
try
{
String host="rmi://LABCSE105/server";
inter a=(inter)Naming.lookup(host);
System.out.println("Enter a number:");
DataInputStream ds=new DataInputStream(System.in);
int n=Integer.parseInt(ds.readLine());
a.fact(n);
}
catch(Exception e)
{
}
}
}
IMPLEMENT:
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;
public class implement extends UnicastRemoteObject implements inter
{
public implement() throws RemoteException
{
}
public void fact(int n) throws RemoteException
{
int f=1;
for(int i=1;i<=n;i++)
f=f*i;
System.out.println("Factorial of "+n+" is "+f);
}
}
INTERFACE:
import java.rmi.*;
import java.rmi.server.*;
public interface inter extends Remote
{
public void fact(int n) throws RemoteException;
}
OUTPUT
SERVER
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac inter.java
C:Program FilesJavajdk1.6.0bin>javac implement.java
C:Program FilesJavajdk1.6.0bin>javac rmiserver.java
C:Program FilesJavajdk1.6.0bin>start rmiregistry
C:Program FilesJavajdk1.6.0bin>java rmiserver
server ready
Factorial of 8 is 40320
CLIENT:
C:Program FilesJavajdk1.6.0bin>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac rmiclient.java
C:Program FilesJavajdk1.6.0bin>java rmiclient
Enter a number:
8
RESULT:
Thus the java program is executed and output is verified successfully.
1-BIT SLIDING WINDOW PROTOCOL
AIM:
To write a program in java for one bit sliding window protocol.
ALGORITHM:
SERVER:
1. Start the program.
2. Import .net and other necessary packages.
3. Declare objects for input/oiutput and Socket to receive the frame and
send acknowledgement.
4. Wait for the client to establish connection.
5. Receive the frame one by one from the socket and return the frame number
as acknowledgement within the thread sleep time.
6. send acknowledgement for each receiving frame and continue the process
until acknowledgement for all frames are sent.
7. when acknowledgement the last frame, exit the program.
CLIENT:
1. Start the program.
2. Import .net and other necessary packages.
3. Create objects for Serversocket,socket to send the frames.
4. Display the server address when the server is connected.
5. Get the number of frames to be sent,from the user.
6. send the frist frame to servert using the socket.
7. when one frame is sent,wait for the acknowledgement from the receiver for the previous
frame.
8. Make use of Thread.Sleepa()method to pause the sending of frame until acknowledgement
is received.
9. when the acknowledgement is received,send the next frame.
10. Continue the process till all specified number of frames are sent and acknowledgement is
received.
11. When all the frames are sent and acknowledgement is received exit the program.
1-BIT SLIDING WINDOW PROTOCOL
SERVER:
import java.lang.System;
import java.net.*;
import java.io.*;
class bitserver
{
public static void main(String[] args)
{
try
{
BufferedInputStream in;
ServerSocket Serversocket=new ServerSocket(500);
System.out.println("waiting for connection");
Socket client=Serversocket.accept();
System.out.println("received request for sending frames");
in=new BufferedInputStream(client.getInputStream());
DataOutputStream out=new DataOutputStream(client.getOutputStream());
int p=in.read();
System.out.println("sending.....");
for(int i=1;i<=p;++i)
{
System.out.println("sending frame no"+i);
out.write(i);
out.flush();
System.out.println("waiting for acknowledge");
Thread.sleep(5000);
int a=in.read();
System.out.println("received acknowledge for frame no:"+i+"as"+a);
}
out.flush();
in.close();
out.close();
client.close();
Serversocket.close();
System.out.println("quiting");
}
catch(IOException e)
{
System.out.println(e);
}
catch(InterruptedException e)
{}
}
}
CLIENT:
import java.lang.System;
import java.net.*;
import java.io.*;
import java.math.*;
class client
{
public static void main(String a[])
{
try
{
InetAddress addr=InetAddress.getByName("Localhost");
System.out.println(addr);
Socket connection=new Socket(addr,500);
DataOutputStream out=new DataOutputStream(connection.getOutputStream());
BufferedInputStream in=new BufferedInputStream(connection.getInputStream());
BufferedInputStream inn=new BufferedInputStream(connection.getInputStream());
BufferedReader ki=new BufferedReader(new InputStreamReader(System.in));
int flag=0;
System.out.println("connect");
System.out.println("enter the no of frames to be requested to server:");
int c=Integer.parseInt(ki.readLine());
out.write(c);
out.flush();
int i,jj=0;
while(jj<c)
{
i=in.read();
System.out.println("received frame no"+i);
System.out.println("sending acknowledgement for frame no"+i);
out.write(i);
out.flush();
jj++;
}
out.flush();
in.close();
inn.close();
out.close();
System.out.println("quiting");
}
catch(Exception e)
{
System.out.println(e);}}}
OUTPUT
BITCLIENT
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac bitclient.java
C:Program FilesJavajdk1.6.0bin>java bitclient
Localhost/127.0.0.1
connect
enter the no of frames to be requested to server:
4
received frame no1
sending acknowledgement for frame no1
received frame no2
sending acknowledgement for frame no2
received frame no3
sending acknowledgement for frame no3
received frame no4
sending acknowledgement for frame no4
quiting
C:Program FilesJavajdk1.6.0bin>
BITSERVER
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac bitserver.java
C:Program FilesJavajdk1.6.0bin>java bitserver
waiting for connection
received request for sending frames
sending.....
sending frame no1
waiting for acknowledge
received acknowledge for frame no:1as1
sending frame no2
waiting for acknowledge
received acknowledge for frame no:2as2
sending frame no3
waiting for acknowledge
received acknowledge for frame no:3as3
sending frame no4
waiting for acknowledge
received acknowledge for frame no:4as4
quiting
C:Program FilesJavajdk1.6.0bin>
RESULT:
Thus the java program is executed and output is verified successfully..
IMPLEMENTATION OF REMOTE COMMAND EXECUTION
AIM:
To perform remote command execution (ie) command entered by the user at the client should
be executed by the server.
ALGORITHM:
SERVER:
1. Create server and client socket.
2. Create a runtime object using getRuntime() method.
3. Create a process object p.
4. Read the command entered by the user at the client using input streams.
5. Execute the command using the exec().
CLIENT:
1. Create a client socket corresponding to the required server and port.
2. Promote the user to enter the command.
3. Read the command using input streams.
4. Write the command to the server using output streams.
5. lose the streams and socket.
SOURCE CODE
SERVER
import java.io.*;
import java.net.*;
import java.lang.*;
class RCEserver
{
public static void main(String a[])throws
IOException,UnknownHostException,InterruptedException
{
ServerSocket ss=new ServerSocket(1000);
Socket cs=ss.accept();
Runtime r=Runtime.getRuntime();
Process p=null;
InputStream is=cs.getInputStream();
DataInputStream dis=new DataInputStream(is);
String s=dis.readLine();
System.out.println(s);
p=r.exec(s);
p.waitFor();
}
}
CLIENT
import java.io.*;
import java.net.*;
import java.lang.*;
public class RCEclient
{
public static void main(String a[])throws UnknownHostException,IOException
{
Socket c=new Socket("localhost",1000);
System.out.println("Enter cmd:");
DataInputStream dis=new DataInputStream(System.in);
String s=dis.readLine();
OutputStream os=c.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
dos.write(s.getBytes());
dos.close();
dis.close();
c.close();
}
}
OUTPUT
SERVER
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac RCEserver.java
C:Program FilesJavajdk1.6.0bin>java RCEserver
calc
CLIENT
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac RCEclient.java.
C:Program FilesJavajdk1.6.0bin>java RCEclient
Enter cmd:
calc
C:Program FilesJavajdk1.6.0bin>
RESULT:
Thus the java program is executed and output is verified successfully.
BROADCASTING
AIM:
To write a java program to send a single message to multiclient.
ALGORITHM:
SENDER:
1. Start the program.
2. Import .net and other necessary packages.
3. The DatagramSocket and the DataInputStream are initialized.
4. The buffer is declare for message.
5. The message is obtained from the user.
6. The message is delievered to the client one by one with the help of the Datagram Packet.
7. The client details is obtained.
8. If message is „bye‟ then the server quits.
CLIENT:
1. Start the program.
2. Import .net and other necessary packages.
3. The DatagramSocket and DatagramPacket are initialized.
4. The message from sender is takeb as the packet from buffer.
5. The message is displayed along with the IP address of the server.
6. If the message is „bye‟ then the client quits from the transmission and the connection is
terminated.
BROADCASTING
SOURCE CODE
SERVER
import java.net.*;
import java.io.*;
public class server
{
public static void main(String args[]) throws Exception
{
DatagramSocket socket=new DatagramSocket();
DataInputStream in=new DataInputStream(System.in);
String msg=" ";
String client=" ";
byte[] buf=new byte[1025];
while(true)
{
System.out.println("Server");
msg=in.readLine();
buf=msg.getBytes();
for(int i=1;i<=10;i++)
{
try
{
client=("sys"+i);
DatagramPacket packet=new
DatagramPacket(buf,buf.length,InetAddress.getByName(client),5000);
socket.send(packet);
System.out.println("Message successfully sent to client:"+client);
}
catch(Exception e)
{
System.out.println("Unable to connect at "+client+e);
}
if(msg.equalsIgnoreCase("Bye"))
{
System.out.println("Server quits");
return;
}
}
}
}
}
CLIENT:
import java.net.*;
import java.io.*;
public class client
{
public static void main(String args[]) throws Exception
{
DatagramSocket socket=new DatagramSocket(5000);
while(true)
{
try
{
byte[] buf=new byte[1025];
DataInputStream in=new DataInputStream(System.in);
String msg=null;
DatagramPacket packet=new DatagramPacket(buf,buf.length);
socket.receive(packet);
msg=new String(packet.getData(),0,packet.getLength());
InetAddress addr=packet.getAddress();
System.out.println("From :"+addr+"message"+msg);
if(msg.equalsIgnoreCase("Bye"))
{
System.out.println("Quits");
return;
}
}
catch(Exception e)
{
System.out.println("Error:"+e);
}
}
}
}
OUTPUT
BROADSERVER
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0_14bin
C:Program FilesJavajdk1.6.0_14bin>javac broadsender.java
Note: broadsender.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
C:Program FilesJavajdk1.6.0_14bin>java broadsender
Server
GOOD MORNING
Unable to connect at sys1java.net.UnknownHostException: sys1
Unable to connect at sys2java.net.UnknownHostException: sys2
Unable to connect at sys3java.net.UnknownHostException: sys3
Unable to connect at sys4java.net.UnknownHostException: sys4
Unable to connect at sys5java.net.UnknownHostException: sys5
Unable to connect at sys6java.net.UnknownHostException: sys6
Unable to connect at sys7java.net.UnknownHostException: sys7
Unable to connect at sys8java.net.UnknownHostException: sys8
Unable to connect at sys9java.net.UnknownHostException: sys9
Unable to connect at sys10java.net.UnknownHostException: sys10
Server
BYE
Unable to connect at sys1java.net.UnknownHostException: sys1
Server quits
C:Program FilesJavajdk1.6.0_14bin>
BROADRECEIVER
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0_14bin
C:Program FilesJavajdk1.6.0_14bin>javac broadreceive.java
C:Program FilesJavajdk1.6.0_14bin>java broadreceive
RESULT:
Thus the java program is executed and output is verified successfully.
CYCLIC REDUNDANCY CHECK
AIM:
To write a java program to implement cyclic redundancy check.
ALGORITHM:
1. Start the program.
2. Import necessary packages.
3. Get an user input in the form of bit data ie string.
4. Get an generator data from the user.
5. Read the length of the string and convert the data into another format by deducing 48 from
it.
6. Now Add the generator data to the original data and send the string as transmitter string.
7. In the receiving end, enter the generator code.
8. Using the generator code, to the length of the received string, add 48 to the number format
of the string by character.
9. If the generator string is wrong, display “message received with error”.
10. If the generator string is correct, perform step 8 and display “message received with no
error”.
11. End the program.
CYCLIC REDUNDANCY CHECK
SOURCE CODE
import java.io.*;
import java.lang.*;
public class crc
{
public static void main(String args[]) throws IOException
{
int f[]=new int[25];
int gen[]=new int[10];
int rem[]=new int[10];
int flen,glen,rlen,i,j;
int p,sum,iframe,igen,irem;
String data;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the frame:");
data=in.readLine();
flen=data.length()-1;
for(i=0;i<data.length();i++)
f[i]=((int)(data.charAt(i)))-48;
System.out.println("Enter the generator:");
data=in.readLine();
glen=data.length()-1;
for(i=1;i<=glen;i++)
f[flen+i]=0;
flen=flen+glen;
for(i=0;i<data.length();i++)
gen[i]=((int)(data.charAt(i)))-48;
p=0;
sum=0;
for(i=flen;i>=0;i--)
{
sum=sum+(f[i]*(int)Math.pow(2,p));
p=p+1;
}
iframe=sum;
p=0;
sum=0;
for(i=glen;i>=0;i--)
{
sum=sum+(gen[i]*(int)Math.pow(2,p));
p=p+1;
}
igen=sum;
irem=iframe%igen;
irem=igen-irem;
iframe+=irem;
i=0;
while(iframe>0)
{
f[i]=iframe%2;
iframe=iframe/2;
i++;
}
if(iframe==1)
f[i]=iframe;
System.out.println("Transmitted string:");
for(i=flen;i>=0;i--)
System.out.print(f[i]);
System.out.println("n enter the received string:");
data=in.readLine();
flen=data.length()-1;
for(i=0;i<data.length();i++)
f[i]=((int)(data.charAt(i)))-48;
p=0;
sum=0;
for(i=flen;i>=0;i--)
{
sum=sum+(f[i]*(int)Math.pow(2,p));
p=p+1;
}
iframe=sum;
irem=iframe%igen;
if(irem==0)
System.out.println("Message received with no error");
else
System.out.println("Message received with error");
}
}
OUTPUT
C:Documents and SettingsSEENU.R>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac crc.java
C:Program FilesJavajdk1.6.0bin>java crc
Enter the frame:
10101011
Enter the generator:
1011
Transmitted string:
10101011111
enter the received string:
1011
Message received with no error
C:Program FilesJavajdk1.6.0bin>java crc
Enter the frame:
10101011
Enter the generator:
1011
Transmitted string:
10101011111
enter the received string:
1001
Message received with error
C:Program FilesJavajdk1.6.0bin>
RESULT:
Thus the java program is executed and output is verified successfully.
SHOREST PATH
AIM:
To implement the shortest path routing (Dijkstra‟s Algorithm) to find the shortest path between
the nodes.
ALGORITHM:
1. Dijkstra‟s shortest path algorithm computes all shortest path from a single node.
2. It can also be used for the all pairs shortest path problem,by the simple expledient of
applying it N times once to each vertex.
3. Get the number of nodes in the network for which the shortest path is to be calculated.
4. Represent the nodes that are connected by cost value(Number of hopes delay bandwidth,
etc.,) and nodes that are not connected by infinite value in an adjacent matrix.
5. To find the shortest path between node follow the steps as stated below.
a. Initially,T=V, where T= set of nodes and V= nodes for which the shortest path
is to be found.
b. At each step of the algorithm the vertex in T with the smalled d value is removed
from T.
c. Each neighbour of in T is examined would be shorter than the currently best known
path.
6. The last paths that remain between the nodes are the shortest path between
the source node and the destination nodes.
OUTPUT
SOURCE CODE:
import java.net.*;
import java.io.*;
class spath
{
public static void main(String args[]) throws IOException
{
int n,s,d,i,j,y=0,sd=100;
int[] in=new int[10];
int[][] m=new int[5][5];
int[] dis=new int[10];
int[] path=new int[10];
DataInputStream a=new DataInputStream(System.in);
System.out.println("Enter the no of vertex:");
n=Integer.parseInt(a.readLine());
System.out.println("Enter the source vertex:");
s=Integer.parseInt(a.readLine());
System.out.println("Enter the destination vertex:");
d=Integer.parseInt(a.readLine());
for(i=1;i<n;i++)
{
j=1;
while(j<n)
{
System.out.println("Enter the distance between"+i+ "and" +(j+1));
m[i][j+1]=Integer.parseInt(a.readLine());
m[j+1][i]=m[i][j+1];
j++;
}
}
for(i=1;i<=n;i++)
{
in[i]=0;
dis[i]=m[s][i];
if(m[s][i]!=0)
path[i]=s;
}
in[s]=1;
dis[s]=0;
for(i=2;i<n;i++)
{
for(j=1;j<=n;j++)
{
if(in[j]==0)
{
if(dis[j]<sd)
{
sd=dis[j];
y=j;
}
}
}
in[y]=1;
for(j=1;j<=n;j++)
{
if((in[j]==0)&&(m[y][j]!=0))
{
if((dis[y]+m[y][j])<dis[j])
{
dis[j]=dis[y]+m[y][j];
path[j]=y;
}
}
}
}
System.out.println(" "+d+"<----");
i=d;
while(path[i]!=s)
{
System.out.println(" "+path[i]+"<----");
i=path[i];
}
System.out.println(" "+s);
System.out.println("Distance is "+dis[d]);
}
}
OUTPUT:
C:Documents and SettingsLABCSE1>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac spath.java
C:Program FilesJavajdk1.6.0bin>java spath
Enter the no of vertex:
3
Enter the source vertex:
1
Enter the destination vertex:
3
Enter the distance between1and2
2
Enter the distance between1and3
1
Enter the distance between2and2
0
Enter the distance between2and3
0
3<----
1
Distance is 1
C:Program FilesJavajdk1.6.0bin>java spath
Enter the no of vertex:
4
Enter the source vertex:
1
Enter the destination vertex:
4
Enter the distance between1and2
2
Enter the distance between1and3
3
Enter the distance between1and4
5
Enter the distance between2and2
0
Enter the distance between2and3
0
Enter the distance between2and4
2
Enter the distance between3and2
0
Enter the distance between3and3
0
Enter the distance between3and4
3
4<----
2<----
1
Distance is 4
C:Program FilesJavajdk1.6.0bin>
RESULT:
Thus the java program is executed and output is verified successfully.
CRYPTOGRAPHY
AIM:
To write a java program to implement client server cryptography.
ALGORITHM:
SERVER:
1. Start the program.
2. Import .net and other necessary packages.
3. Declare objects for Socket,ServerSocket and PrintStream to transfer the encrypted
string.
4. Initialize string variables to null.
5. Get an integer value from the user as key and a string from the user.
6. Read the string in character format to its length using charAt().
7. Convert each character to integer and add the key value to display it as a encrypted
string.
8. Send the encrypted string and value to the client using PrintStream an Socket.
9. After sending the string and key exit the program.
CLIENT:
1. Start the program.
2. Import .net and other necessary packages.
3. Declare objects for Socket and InputStream to receive the string and key from
server.
4. Store the string and key to different variables.
5. Read the string character wise to its length.
6. Request the user to enter the key for decryption.
7. Compare the key with the received key;
8. If both keys are equal then,
-Convert the each charater of the string to integer and deduce the key value.
- Convert the integer value to character and form it into a string and display
the decrypted string.
Else
-Print the message as cannot decrypt, wrong message and quit.
9. End the program.
SOURCE CODE
SERVER
import java.io.*;
import java.net.*;
class encrypserver
{
public static void main(String a[])throws Exception
{
try
{
ServerSocket ss=new ServerSocket(1000);
Socket s=ss.accept();
PrintStream ps=new PrintStream(s.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s2="",s3="";
int i=0,k;
System.out.println("n Enter a String :");
String s1=br.readLine();
System.out.print("n Enter the key:");
k=Integer.parseInt(br.readLine());
while(i<s1.length())
{
char c1=s1.charAt(i++);
int n=(int)c1+k+1;
c1=(char)n;
s2+=c1;
n=(int)c1-k-1;
c1=(char)n;
s3+=c1;
}
System.out.print("n Encrypted String :"+s2);
ps.println(s2);
ps.println(k);
ps.close();
s.close();
ss.close();
}
catch(Exception e)
{
System.out.print("n Error :"+e);
}
}
}
CLIENT
import java.io.*;
import java.net.*;
class decrypclient
{
public static void main(String args[])throws Exception
{
try
{
Socket s=new Socket("LocalHost",1000);
BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedReader brs=new BufferedReader(new InputStreamReader(System.in));
String s1="",s2="";
s1=br.readLine();
int k1=Integer.parseInt(br.readLine());
int i=0;
System.out.print("n Encrypted sender String :"+s1);
System.out.print("n Enter the key :");
int k=Integer.parseInt(brs.readLine());
if(k==k1)
{
while(i<s1.length())
{
char c1=s1.charAt(i++);
int n=(int)c1-k-1;
c1=(char)n;
s2+=c1;
}
System.out.print("n Decrypted String :"+s2);
}
else
{
System.out.print("n U r unable to decrypt...Wrong key...");
System.exit(0);
}
}
catch(Exception e)
{
System.out.print("n Error :"+e);
}
}
}
OUTPUT
SERVER
C:Documents and SettingsLABCSE1>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac encrypserver.java
C:Program FilesJavajdk1.6.0bin>java encrypserver
Enter a String :
GOD IS GREAT
Enter the key:8
Encrypted String :PXM)R)P[NJ]
C:Program FilesJavajdk1.6.0bin>
CLIENT
C:Documents and SettingsLABCSE1>cd
C:>cd C:Program FilesJavajdk1.6.0bin
C:Program FilesJavajdk1.6.0bin>javac decrypclient.java
C:Program FilesJavajdk1.6.0bin>java decrypclient
Encrypted sender String :PXM)R)P[NJ]
Enter the key :8
Decrypted String :GOD IS GREAT
C:Program FilesJavajdk1.6.0bin>
RESULT:
Thus the java program is executed and output is verified successfully.

Contenu connexe

Tendances

Lecture 23 27. quality of services in ad hoc wireless networks
Lecture 23 27. quality of services in ad hoc wireless networksLecture 23 27. quality of services in ad hoc wireless networks
Lecture 23 27. quality of services in ad hoc wireless networks
Chandra Meena
 
Microprocessor 80386
Microprocessor 80386Microprocessor 80386
Microprocessor 80386
yash sawarkar
 

Tendances (20)

Java beans
Java beansJava beans
Java beans
 
MULTI THREADING IN JAVA
MULTI THREADING IN JAVAMULTI THREADING IN JAVA
MULTI THREADING IN JAVA
 
Lecture 23 27. quality of services in ad hoc wireless networks
Lecture 23 27. quality of services in ad hoc wireless networksLecture 23 27. quality of services in ad hoc wireless networks
Lecture 23 27. quality of services in ad hoc wireless networks
 
Applets in java
Applets in javaApplets in java
Applets in java
 
PAI Unit 3 Multitasking in 80386
PAI Unit 3 Multitasking in 80386PAI Unit 3 Multitasking in 80386
PAI Unit 3 Multitasking in 80386
 
GUI components in Java
GUI components in JavaGUI components in Java
GUI components in Java
 
Life cycle-of-a-thread
Life cycle-of-a-threadLife cycle-of-a-thread
Life cycle-of-a-thread
 
Microprocessor 80386
Microprocessor 80386Microprocessor 80386
Microprocessor 80386
 
Semaphore
SemaphoreSemaphore
Semaphore
 
PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts
 
Dynamic interconnection networks
Dynamic interconnection networksDynamic interconnection networks
Dynamic interconnection networks
 
Java socket programming
Java socket programmingJava socket programming
Java socket programming
 
Java(Polymorphism)
Java(Polymorphism)Java(Polymorphism)
Java(Polymorphism)
 
Collection Framework in java
Collection Framework in javaCollection Framework in java
Collection Framework in java
 
Java Collections
Java  Collections Java  Collections
Java Collections
 
Sliding window protocol
Sliding window protocolSliding window protocol
Sliding window protocol
 
Congestion avoidance in TCP
Congestion avoidance in TCPCongestion avoidance in TCP
Congestion avoidance in TCP
 
Presentation on cyclic redundancy check (crc)
Presentation on cyclic redundancy check (crc)Presentation on cyclic redundancy check (crc)
Presentation on cyclic redundancy check (crc)
 
Java Exception handling
Java Exception handlingJava Exception handling
Java Exception handling
 
SQL Commands
SQL Commands SQL Commands
SQL Commands
 

En vedette

Final networks lab manual
Final networks lab manualFinal networks lab manual
Final networks lab manual
Jaya Prasanna
 
Network lab manual
Network lab manualNetwork lab manual
Network lab manual
Prabhu D
 
Network lap pgms 7th semester
Network lap pgms 7th semesterNetwork lap pgms 7th semester
Network lap pgms 7th semester
DOSONKA Group
 
M3 – cisco packet tracer lab
M3 – cisco packet tracer labM3 – cisco packet tracer lab
M3 – cisco packet tracer lab
Drew7Williams
 
Packet Tracer Simulation Lab Layer 2 Switching
Packet Tracer Simulation Lab Layer 2 SwitchingPacket Tracer Simulation Lab Layer 2 Switching
Packet Tracer Simulation Lab Layer 2 Switching
Johnson Liu
 
Packet tracer practical guide
Packet tracer practical guidePacket tracer practical guide
Packet tracer practical guide
Nishant Gandhi
 
Packet Tracer Simulation Lab Layer3 Routing
Packet Tracer Simulation Lab Layer3 RoutingPacket Tracer Simulation Lab Layer3 Routing
Packet Tracer Simulation Lab Layer3 Routing
Johnson Liu
 
Mobile Ad hoc Networks
Mobile Ad hoc NetworksMobile Ad hoc Networks
Mobile Ad hoc Networks
Jagdeep Singh
 
DDD Sydney 2011 - Getting out of Sync with IIS and Riding a Comet
DDD Sydney 2011 - Getting out of Sync with IIS and Riding a CometDDD Sydney 2011 - Getting out of Sync with IIS and Riding a Comet
DDD Sydney 2011 - Getting out of Sync with IIS and Riding a Comet
Richard Banks
 

En vedette (20)

Final networks lab manual
Final networks lab manualFinal networks lab manual
Final networks lab manual
 
Computer Networking Lab File
Computer Networking Lab FileComputer Networking Lab File
Computer Networking Lab File
 
Network lab manual
Network lab manualNetwork lab manual
Network lab manual
 
Network lap pgms 7th semester
Network lap pgms 7th semesterNetwork lap pgms 7th semester
Network lap pgms 7th semester
 
Cn lab manual 150702
Cn lab manual 150702Cn lab manual 150702
Cn lab manual 150702
 
Computer Networks Lab File
Computer Networks Lab FileComputer Networks Lab File
Computer Networks Lab File
 
Networking lab
Networking labNetworking lab
Networking lab
 
C n practical file
C n practical fileC n practical file
C n practical file
 
M3 – cisco packet tracer lab
M3 – cisco packet tracer labM3 – cisco packet tracer lab
M3 – cisco packet tracer lab
 
Student packet tracer manual v1.1
Student packet tracer manual v1.1Student packet tracer manual v1.1
Student packet tracer manual v1.1
 
Packet Tracer Simulation Lab Layer 2 Switching
Packet Tracer Simulation Lab Layer 2 SwitchingPacket Tracer Simulation Lab Layer 2 Switching
Packet Tracer Simulation Lab Layer 2 Switching
 
Ns2programs
Ns2programsNs2programs
Ns2programs
 
Protocol implementation on NS2
Protocol implementation on NS2Protocol implementation on NS2
Protocol implementation on NS2
 
Packet tracer practical guide
Packet tracer practical guidePacket tracer practical guide
Packet tracer practical guide
 
Ns2
Ns2Ns2
Ns2
 
Packet Tracer Simulation Lab Layer3 Routing
Packet Tracer Simulation Lab Layer3 RoutingPacket Tracer Simulation Lab Layer3 Routing
Packet Tracer Simulation Lab Layer3 Routing
 
Mobile Ad hoc Networks
Mobile Ad hoc NetworksMobile Ad hoc Networks
Mobile Ad hoc Networks
 
aclogを支えるデザイン
aclogを支えるデザインaclogを支えるデザイン
aclogを支えるデザイン
 
Building Comfort with MATLAB
Building Comfort with MATLABBuilding Comfort with MATLAB
Building Comfort with MATLAB
 
DDD Sydney 2011 - Getting out of Sync with IIS and Riding a Comet
DDD Sydney 2011 - Getting out of Sync with IIS and Riding a CometDDD Sydney 2011 - Getting out of Sync with IIS and Riding a Comet
DDD Sydney 2011 - Getting out of Sync with IIS and Riding a Comet
 

Similaire à Lab manual cn-2012-13

Chapter 4 slides
Chapter 4 slidesChapter 4 slides
Chapter 4 slides
lara_ays
 
Networks lab
Networks labNetworks lab
Networks lab
svijiiii
 
Socket Programming
Socket  ProgrammingSocket  Programming
Socket Programming
leminhvuong
 

Similaire à Lab manual cn-2012-13 (20)

Unit 8 Java
Unit 8 JavaUnit 8 Java
Unit 8 Java
 
Advance Java-Network Programming
Advance Java-Network ProgrammingAdvance Java-Network Programming
Advance Java-Network Programming
 
Java 1
Java 1Java 1
Java 1
 
Java networking
Java networkingJava networking
Java networking
 
Socket Programming it-slideshares.blogspot.com
Socket  Programming it-slideshares.blogspot.comSocket  Programming it-slideshares.blogspot.com
Socket Programming it-slideshares.blogspot.com
 
Md13 networking
Md13 networkingMd13 networking
Md13 networking
 
CHAPTER - 3 - JAVA NETWORKING.pptx
CHAPTER - 3 - JAVA NETWORKING.pptxCHAPTER - 3 - JAVA NETWORKING.pptx
CHAPTER - 3 - JAVA NETWORKING.pptx
 
Java Networking
Java NetworkingJava Networking
Java Networking
 
Chapter 4 slides
Chapter 4 slidesChapter 4 slides
Chapter 4 slides
 
Os 2
Os 2Os 2
Os 2
 
Networks lab
Networks labNetworks lab
Networks lab
 
Networks lab
Networks labNetworks lab
Networks lab
 
Socket Programming
Socket ProgrammingSocket Programming
Socket Programming
 
network programing lab file ,
network programing lab file ,network programing lab file ,
network programing lab file ,
 
Sockets
Sockets Sockets
Sockets
 
Networking & Socket Programming In Java
Networking & Socket Programming In JavaNetworking & Socket Programming In Java
Networking & Socket Programming In Java
 
Tcp/ip server sockets
Tcp/ip server socketsTcp/ip server sockets
Tcp/ip server sockets
 
Lecture6
Lecture6Lecture6
Lecture6
 
A.java
A.javaA.java
A.java
 
Socket Programming
Socket  ProgrammingSocket  Programming
Socket Programming
 

Dernier

Dernier (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 

Lab manual cn-2012-13

  • 1. MANAKULA VINAYAGAR INSTITUTE OF TECHNOLOGY KALITHEERTHALKUPPAM , MADAGADIPET , PUDUCHERRY-605 107 DEPARTMENT OF INFORMATON TECHNOLOGY LAB MANUAL FOR COMPUTER NETWORKS
  • 2. MANAKULA VINAYAGAR INSTITUTE OF TECHNOLOGY Kalitheerthaalkuppam, Puducherry – 605 107 Department of Information Technology List of Experiments COMPUTER NETWORKS LAB (2012-13 EVEN SEM) [IT P63] Year/Sem: III/VI Batch: 2010-2014 Sl. No Proposed Date Actual Date Experiment Proposed Sessions 1 21.12.12 Study of Socket Programming 1 2 21.12.12 Finding The IP Address TCP Communication 3 26.12.12 TCP-One Way Communication 1 4 26.12.12 TCP-Two Way Communication UDP Communication 5 02.01.13 UDP-One Way Communication 1 6 02.01.13 UDP-Two Way Communication Socket Programming 7 09.01.13 Echo Command 1 8 09.01.13 Ping Command 9 23.01.13 Talk Command 1 File Transfer 10 23.01.13 Using TCP 1 Sliding Window Protocol 11 30.01.13 1 – Bit Sliding Window Protocol 1 Casting 12 06.02.13 Broadcasting 1 13 06.02.13 Cyclic Redundancy Check 1 Routing Algorithms 14 13.02.13 Shortest Path Routing 1 15 20.02.13 Remote Method Invocation- Factorial of A Number 1 16 27.02.13 Remote Command Execution 1 17 27.02.13 Study of NS2 Staff-in-Charge HOD
  • 3. STUDY THE COMMANDS OF SOCKET PROGRAMMING AIM To study the commands of the socket programming. IMPLEMENTATION OF SOCKET PROGRAMMING In this two modules are there: 1. Server.java 2. Client.java These modules are used to establish a point to point communication between two process using socket programming. The creation of socket can be achieved by the constructors like ServerSocket(), Socket(), these processes then communicate using readline and println(). TCP/IP PROTOCOL TCP/IP Sockets are used to implement, reliable, bidirectional, persistent, point to point stream based connection between host on the internet. There are 2 types of sockets available: 1. ServerSocket and 2. Socket. They connect to them on published ports when the ServerSocket created it will register itself with the system as having an internet in client connection. The constructor for the ServerSocket having clients connection it can leave pending before it should be refers connections. The default is 50 the constructor might through IOException Otherwise Try{…..} Catch(IOException){…..} should be used . CLIENT SOCKET The creation of socket is done through the constructor of the class socket. The creation of the socket objects implicates establishes a connection between the client and the server. CONSTRUCTOR OF SERVERSOCKET ServerSocket(int Port) Creates ServerSocket on the specified port with a queue length of 50. ServerSocket(int Port,int Maxqueue). Creates a ServerSocket on the specified port with a maximum queue length of maxqueue. ServerSocket(int Port, int Maxqueue,Inet Addres local Address) Creates a SeverSocket on the specified with a maximum queue length of the maxqueue on a multihost,local address specifies the IP Address. The ServerSocket has one additional method called accept() which is a blocking call that will wait for a client to initiate communication. Socket(String hostname, int Port) Creates a Socket contaion the local host to the n,amed host the port can throw an unknown host exception or an IOException. Socket(Inet Address,IPAddress,int port) Creates a Socket using a preexisting Inet Address object and a port can throw an IOException.
  • 4. METHOD Inet Address get Inet Address() Return InetAddress, associated with the socket object. Inet getport() Return the remote port to which this socket object is connected. Inet getLocalport() Return the localport to which this socket object is connected. The following I/O Streams related methods are also available in the socket. InputStream getInput Stream() Return the InputStream associated with the invoking socket. OutputStream get outputstream() Return the output stream associated with the invoking socket. Void close Close both the inputstream and outputstream. INET ADDRESSING Every computer on the internet has an address. An internet is a number that uniquely identifies each computer on the net. There are 32 bit in an IP Address and we often refer to them has sequence of four number between 0 and 255 separated by the data. This makes them easier to remember because they are not randomly assigned, they are hierarchically assigned. The first few bits define which class of network lettered A,B,C,D or E . The address represents internet or on a class C network since there are 2 million networks in class C . Static Inet Address get localhost() throws unknown host Exception Return the Inet address object that represents the localhost Static Inet Address get by name(String host name)throws unknown host Exception Returns on an InetAddress for a host name passed to it Static Inet Address get all by name host Exception Return an array of Inet Address that represent all of the address,meta particular name. SOME OTHER METHOD Boolean equals(object other) Return true if this object has same name internet address as other. Byte[]get address() Return a four element byte array represent the object. String get Host Address() Return a string that represents that host address associated with InetAddress object Int hascode() Return the hashcode of the invoking object Boolena is multicost address Return true if this internet address is a multicost address otherwise it return false.
  • 5. FINDING THE IP ADDRESS AIM To write a java program to find the IP address of the system. ALGORITHM 1. Start the program 2. Create an object for the class InetAddress. 3. An IP address of the system is retrieved using the member function getLocalHost(). 4. System number is displayed using the member function getHostName(). 5. The IP address of other system can be retrieved by using the member function getByName(), passing the system number as parameter. 6. Stop the program.
  • 6. FINDING IP ADDRESS SOURCE CODE import java.io.*; import java.net.*; class address { public InetAddress ip; public static void main(String args[])throws UnknownHostException { // To get local machine‟s IP address InetAddress ip=InetAddress.getLocalHost(); System.out.println("n IP address is :"+ip); // Gets the local machine‟s name String s1=ip.getHostName(); System.out.println("system number is:"+s1); //To receive the other machine‟s name InetAddress ip1=InetAddress.getByName("system 10"); System.out.println("n name of other system is :"+ip1); } }
  • 7. OUTPUT C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac address.java D:ChitraJava>java address IP address is : student1/172.16.11.136 system number is: student1 RESULT Thus the java program is executed and output is verified successfully.
  • 8. TCP-ONE WAY COMMUNICATION AIM To write a java program to implement one way communication using TCP (Transmission Control Protocol). ALGORITHM SERVER 1. Start the program. 2. Import java.net package and other packages. 3. Create objects for ServerSocket, Socket, DataInputStream and PrintStream to transfer the data. 4. Using PrintStream transfer the data in OutputStream via a port. 5. Run an loop to send the data from server until an “end or exit” string is transferred. 6. If “end or exit” is encountered, close the socket and exit the program. 7. Stop the program. CLIENT 1. Start the program. 2. Import java.net package and other packages. 3. Create objects for Socket and DataInputStream to receive the server data. 4. Run an loop to receive the data from server and store it in a string using DataInputStream. 5. Display the server data and exit when an “end or exit” message is encountered. 6. Stop the program.
  • 9. TCP ONE WAY COMMUNICATION SOURCE CODE CLIENT import java.io.*; import java.net.*; class tcp1client { public static void main(String args[])throws IOException { Socket s=new Socket("localHost",8000); //Used to get input from keyword DataInputStream in=new DataInputStream(s.getInputStream()); while(true) { // Reads the input from keybroad String str=in.readLine(); System.out.println("Message Received:"+str); if(str.equals("end")) { //Close the socket s.close(); break; } } } }
  • 10. SOURCE CODE SERVER import java.io.*; import java.net.*; class tcp1server { public static void main(String a[])throws IOException { ServerSocket ss=new ServerSocket(8000); //Opens the socket Socket s=ss.accept(); DataInputStream in=new DataInputStream(System.in); PrintStream dos=new PrintStream(s.getOutputStream()); while(true) { System.out.println("enter message to send:"); //Reads the input from the input device String str=in.readLine(); dos.println(str); //checks for end of message if(str.equals("end")) { //Closes the socket ss.close(); break; } } } }
  • 11. OUTPUT SERVER C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac server.java D:ChitraJava>java server enter message to send: GOOD MORNING HAVE A NICE DAY enter message to send:end D:ChitraJava> CLIENT C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava> javac client.java D:ChitraJava> java client Message Received:GOOD MORNING HAVE A NICE DAY Message Received:end D:ChitraJava> RESULT Thus the java program is executed and output is verified successfully.
  • 12. TCP-TWO WAY COMMUNICATION AIM To write a java program to implement two way communication using TCP (Transmission Control Protocol). ALGORITHAM SERVER 1. Start the Program. 2. Import java.net package and other packages. 3. Create objects for ServerScoket, Socket and PrintStream to transfer the Server data. 4. Create objects for Scoket and DataInputStream to receive the client data. 5. Using PrintStream transfer the data in OutputStream via a port. 6. Run an loop to send the data from server until an ”end or exit” String is transferred. 7. Using same loop receive the data from server and store it in a string using DataInputStream. 8. Print the received client data and exit when an ”end or exit” message is encountered. 9. Stop the program. CLIENT 1. Start the program. 2. Import java.net package and other packages. 3. Create objects for Socket, Socket and PrintStream to transfer the client data. 4. Create objects for Socket and DataInputStream to receive the server data. 5. Using PrintStream transfer the data in OutputStream via a port. 6. Run an loop to send the data from server until an “end or exit” string is transferred. 7. Using same loop receive the data from server and store it in a string using DataInputStream. 8. Print the received server data and exit when an “end or exit” message is encountered. 9. Stop the program.
  • 13. TCP TWO WAY COMMUNICATION SOURCE CODE CLIENT import java.io.*; import java.net.*; import java.lang.*; class tcp2client { public static void main(String a[])throws IOException { //Creates object for socket Socket s=new Socket("LocalHost",8000); DataInputStream in=new DataInputStream(s.getInputStream()); DataInputStream inn=new DataInputStream(System.in); PrintStream dos=new PrintStream(s.getOutputStream()); while(true) { //Reads the input from the input device String str=in.readLine(); System.out.println("msg received:"+str); //Checks for end of message if(str.equals("end")) { //Closes the socket s.close(); break; } System.out.println("enter the msg to send: "); //Reads the message to send String str1=inn.readLine(); dos.println(str1); //Checks for end of message if(str1.equals("end")) { //Closes the socket s.close(); break; } } } }
  • 14. SERVER import java.io.*; import java.net.*; import java.lang.*; class tcp2server { public static void main(String a[])throws IOException { ServerSocket ss=new ServerSocket(8000); //Opens the socket Socket s=ss.accept(); PrintStream dos=new PrintStream(s.getOutputStream()); DataInputStream in=new DataInputStream(System.in); DataInputStream inn=new DataInputStream(s.getInputStream()); while(true) { System.out.println("enter the msg to send: "); //Reads the input String str=in.readLine(); dos.println(str); //Checks for end of message if(str.equals("end")) { //Closes the socket ss.close(); break; } String str1=inn.readLine(); System.out.println("msg received"+str1); if(str1.equals("end")) { ss.close(); break; } } } }
  • 15. OUTPUT SERVER C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac server1.java D:ChitraJava>java server1 enter the msg to send: HAI FRIENDS msg received:HELLO enter the msg to send:end D:ChitraJava> CLIENT C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac client1.java D:ChitraJava>java client1 msg received:HAI FRIENDS enter the msg to send: HELLO enter the msg to send:end D:ChitraJava> RESULT Thus the java program is executed and output is verified successfully.
  • 16. UDP-ONE WAY COMMUNICATION AIM To write a program in java to perform one way message transfer using the User Datagram Protocol (UDP). ALGORITHM SERVER 1. Start the program. 2. Import java.net and other necessary packages. 3. Create objects for DatagramSocket and DatagramPacket to send the packet from server. 4. Create an object for InetAddress of the LocalHost. 5. Get user input data and convert it into bytes and send the bytes using DatagramPacket and DatagramSocket. 6. Get user input in an loop and send data until the user input sends “end”. 7. If end is encountered, exit sending data. 8. Stop the program. CLIENT 1. Start the program. 1. Import java.net and other necessary Packages. 2. Create objects for DatagramSocket and Datagrampacket to receive the packet data from server. 3. Create an object for InetAddress of the LocalHost. 4. Receive the data from sender using receive() method and store it to a string. 5. Run an loop and store the data in the string until the received message is “end”. 6. Print the received message. 7. Stop the program.
  • 17. UDP ONE WAY COMMUNICATION SOURCE CODE SENDER import java.io.*; import java.net.*; class udp1sender { DatagramSocket ds; DatagramPacket dp; byte buff[]=new byte[1024]; String str,str1; boolean i=true; public void send() throws IOException { while(i) { ds=new DatagramSocket(); DataInputStream in=new DataInputStream(System.in); System.out.println("Enter the msg:"); str=in.readLine(); buff=str.getBytes(); dp=new DatagramPacket(buff,buff.length,InetAddress.getLocalHost(),8000); ds.send(dp); System.out.println("do u want to continue:yes or no"); str1=in.readLine(); if(str1.equals("yes")) { i=true; } else { i=false; } } } public static void main(String args[])throws IOException { udp1sender se=new udp1sender(); se.send(); } }
  • 18. RECEIVER import java.io.*; import java.net.*; class udp1receiver { DatagramSocket ds; DatagramPacket dp; byte buff[]=new byte[1024]; String str; public void receive() throws IOException { ds=new DatagramSocket(8000); while(true) { dp=new DatagramPacket(buff,buff.length); ds.receive(dp); str=new String (dp.getData(),0,0,dp.getLength()); System.out.println(str); System.out.println("InetAddress:"+dp.getAddress()); } } public static void main(String args[])throws Exception { udp1receiver re=new udp1receiver(); re.receive(); } }
  • 19. OUTPUT SERVER C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac udp1sender.java D:ChitraJava>java udp1sender Enter the msg: IT KINGS do u want to continue:yes or no no D:ChitraJava> CLIENT C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac udp1receiver.java D:ChitraJava>java udp1receiver IT KINGS InetAddress:/172.16.11.99 D:ChitraJava> RESULT Thus the java program is executed and output is verified successfully.
  • 20. UDP-TWO WAY COMMUNICATION AIM To write a java program to perform two way message transfer using the user datagram protocol(UDP). ALGORITHM SERVER 1. Start the program. 2. Import java.net and other necessary packages. 3. Create objects for DatagramSocket and DatagramPacket to receive packet data from client. 4. Create an object for InetAddress of the LocalHost. 5. Receive the client data using receive() method and store it in a string. 6. Run a loop and store the data in the string until the received message is “end”. 7. Print the received client‟s message. 8. Get user input in the same loop and send the data until the user input is “end”. 9. Convert the user input into bytes and send the byte using DatagramPacket and DatagramSocket. 10. If end is encountered, exit the sending data to client. 11. Stop the program. CLIENT 1. Start the program. 2. Import java.net and other necessary packages. 3. Create objects for DatagramSocket and DatagramPacket to receive packet data from server. 4. Create an object for InetAddress of the LocalHost. 5. Receive the server data using receive() method and store it in a string. 6. Run a loop and store the data in the string until the received message is “end”. 7. Print the received server‟s message. 8. Get user input in the same loop and send data until the user input is end. 9. Convert the user input into bytes and send the byte using DatagramPacket and DatagramSocket. 10. If end is encountered, exit sending data to server. 11. Stop the program.
  • 21. UDP TWO WAY COMMUNICATION SOURCE CODE SERVER import java.io.*; import java.net.*; class udp2sender { public static void main(String a[])throws Exception { while(true) { DatagramSocket ds=new DatagramSocket(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("enter the msg:"); String msg=br.readLine(); byte bl[]=msg.getBytes(); InetAddress add=InetAddress.getLocalHost(); DatagramPacket dp=new DatagramPacket(bl,bl.length,add,1234); ds.send(dp); if(msg.equals("exit")) System.exit(0); byte b[]=new byte[255]; DatagramPacket dp1=new DatagramPacket(bl,bl.length); ds.receive(dp1); String msg1=new String(dp1.getData()); System.out.println("received msg:" +msg1); } } }
  • 22. CLIENT import java.io.*; import java.net.*; import java.lang.*; class udp2receiver { public static void main(String a[])throws IOException { DatagramSocket ds=new DatagramSocket(1234); byte b[]=new byte[255]; while(true) { DatagramPacket dp=new DatagramPacket(b,b.length); ds.receive(dp); String msg=new String(dp.getData()); System.out.println("Msg Received:"+msg); InetAddress add=dp.getAddress(); int port=dp.getPort(); System.out.println("Enter a line of text to send:"); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String msg1=br.readLine(); byte b1[]=msg1.getByte(); DatagramPacket dp1=new DatagramPacket(b1,b1.length,add,port); ds.send(dp1); if(msg1.equals("exit")) System.exit(0); } }
  • 23. OUTPUT SERVER C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac udp2sender.java D:ChitraJava>java udp2sender enter the msg: GOOD MORNING received msg:HAVE A NICE DAY enter the msg:end D:ChitraJava> CLIENT C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac udp2receiver.java D:ChitraJava>java udp2receiver Msg Received:GOOD MORNING Enter a line of text to send: HAVE A NICE DAY Msg Received:end D:ChitraJava> RESULT: Thus the java program is executed and output is verified successfully.
  • 24. ECHO AIM To write a program in java to demonstrate the ECHO command. ALGORITHM ECHOSERVER 1. Start the program. 2. Import java.net and other necessary packages. 3. Create objects for DataInputStream, Socket and PrintWriter to receive client message and send it back. 4. Store the message in a string and print the message using print() method. 5. Send the same received message to the client using PrintWriter and Socket. 6. When the received character is „.‟, then stop sending the data back. 7. Stop the program. ECHOCLIENT 1. Start the program. 2. Import java.net and other necessary packages. 3. Create objects for ServerSocket and Socket to send the message. 4. Create objects for PrintStream to write message from client to server. 5. Get the user input and store it in a string. 6. Print the string in the Socket using PrintStream to be received by the server. 7. Using the Print() method, receive the client echo message and print it. 8. If the user input is „.‟, then stop sending the data. 9. Stop the program.
  • 25. ECHO SOURCE CODE ECHO SERVER import java.io.*; import java.net.*; class echoserver { public static void main(String args[]) { try { Socket s=null; ServerSocket ss=new ServerSocket(8000); s=ss.accept(); System.out.println(s); BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter print=new PrintWriter(s.getOutputStream()); int i=1; while(i>0) { String str=br.readLine(); if(str.equals(".")) break; System.out.println("msg received by client:"+str); print.println(str); print.flush(); }} catch(IOException e) { System.out.println("n error:"+e); } } }
  • 26. ECHO CLIENT import java.io.*; import java.net.*; class echoclient { public static void main(String a[]) { try { Socket s=new Socket("LocalHost",8000); DataInputStream in=new DataInputStream(System.in); BufferedReader br1=new BufferedReader(new InputStreamReader(System.in)); BufferedReader br2=new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter print=new PrintWriter(s.getOutputStream()); System.out.println("n msg to be echo:"); String str=br1.readLine(); print.println(str); print.flush(); System.out.println(br2.readLine()); } catch(UnknownHostException e) {} catch(IOException e) { System.out.println("n error:"+e); } } }
  • 27. OUTPUT ECHOCLIENT C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac echoclient.java D:ChitraJava>java echoclient msg to be echo: GOD IS GREAT GOD IS GREAT D:ChitraJava> ECHOSERVER C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac echoserver.java D:ChitraJava>java echoserver Socket[addr=/127.0.0.1,port=1623,localport=8000] msg received by client:GOD IS GREAT D:ChitraJava> RESULT Thus the java program is executed and output is verified successfully.
  • 28. PING COMMAND AIM To write a program in java to demonstrate the usage of PING command. ALGORITHM PINGSERVER 1. Start the program. 2. Import java.net and other necessary packages. 3. Initialize the ping server with both sockets as null value. 4. Start the server socket. 5. At the client give the IP address of the server. 6. The client program is then started by starting socket. 7. At the receiver end, the client is pinged. 8. Stop the program. PINGCLIENT 1. Start the program. 2. Import java.net and other necessary packages. 3. Initialize the ping client with both sockets as null value. 4. Start the socket. 5. Get the IP address of the server. 6. Ping the server. 7. At the receiver end, the server is pinged. 8. Stop the program.
  • 29. PING COMMAND SOURCE CODE PING SERVER import java.io.*; import java.net.*; public class pingserver { public static void main(String a[]) { String line1,line2; int i; ServerSocket es; DataInputStream di; PrintStream ps; Socket csoc; es=null; csoc=null; try { es=new ServerSocket(9999); } catch(Exception e) { System.out.println(e); } System.out.println("ping server"); try { csoc=es.accept(); di=new DataInputStream(csoc.getInputStream()); ps=new PrintStream(csoc.getOutputStream()); for(i=0;i<4;i++) { line1=di.readLine(); System.out.println("pinged by client"); ps.println(line1+"reply from host:bytes=3<time<1ms TT<=128"); } di.close(); ps.close(); } catch(Exception e) { System.out.println(e); } } }
  • 30. PING CLIENT import java.io.*; import java.net.*; public class pingclient { public static void main(String args[]) { PrintWriter out=null; int i,j,k; BufferedReader networkIn=null; try { System.out.println("enter the IP address:"); DataInputStream in = new DataInputStream(System.in); String ip = in.readLine(); Socket thesocket = new Socket(ip, 9999); networkIn = new BufferedReader(new InputStreamReader(System.in)); out = new PrintWriter(thesocket.getOutputStream()); System.out.println("npinging" + ip + "with 32 bytes of datan"); for (i = 0; i < 4; i++) { out.println(ip); out.flush(); String inp = networkIn.readLine(); if (inp != null) { for (j = 0; j < 10000; j++) { for (k = 0; k < 50000; k++) { } } System.out.println("reply from" + inp); } else { for (i = 0; i < 4; i++) { for (j = 0; j < 10000; j++) { for (k = 0; k < 50000; k++) {
  • 31. } System.out.println("nrequest time out"); } } } } } catch (IOException e) { for (i = 0; i < 4; i++) { for (j = 0; j < 1000; j++) { for (k = 0; k < 5000; k++) { } } System.out.println("nrequest timed out"); } } try { if(networkIn!=null) networkIn.close(); if(out!=null) out.close(); } catch(Exception e){ System.out.println("nrequested time out"); } } }
  • 32. OUTPUT PING CLIENT C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac pingclient.java D:ChitraJava>java pingclient enter the IP address: 192.168.1.10 pinging192.168.1.10with 32 bytes of data 5 reply from5 8 reply from8 9 reply from9 4 reply from4 D:ChitraJava> PINGSERVER C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac pingserver.java D:ChitraJava>java pingserver ping server pinged by client pinged by client pinged by client pinged by client D:ChitraJava> RESULT Thus the java program is executed and output is verified successfully.
  • 33. IMPLEMENTATION OF TALK COMMAND AIM To send and receive message from client and server using connection oriented service. ALGORITHM SERVER 1. Start the program. 2. Create server and client sockets. 3. Use input streams to get the message from user. 4. Use output stream to send message to the client. 5. Wait for client to display this message and write a new one to be displayed by the server. 6. Display message given at client using input streams read from socket. 7. If in the message given by server or client, the word “end” is encountered, exit both the programs. 8. Stop the program. CLIENT 1. Start the program. 2. Create a client socket that connects to the required host and port. 3. Using input streams read message given by server and print it. 4. Using input streams, get message from user to be given to the server. 5. Use output streams to write message to the server. 6. Stop the program.
  • 34. SOURCE CODE TALKSERVER import java.io.*; import java.net.*; public class talkserver { public static void main(String args[])throws Exception { ServerSocket ecsvr=null; String line1,line2; DataInputStream dis=null; PrintStream pts=null; Socket clsckt=null; BufferedReader in1=null; ecsvr=new ServerSocket(9999); System.out.println("TALK SERVER"); System.out.println("----------------------"); clsckt=ecsvr.accept(); dis=new DataInputStream(clsckt.getInputStream()); pts=new PrintStream(clsckt.getOutputStream()); System.out.println("Node successfully connected.."); while(true) { line1=dis.readLine(); System.out.println("Message Received"); System.out.println("The Message ="+line1); in1=new BufferedReader(new InputStreamReader(System.in)); line2=in1.readLine(); if(line2.equals("end")) { break; } pts.println(line2); pts.flush(); System.out.println("Message sent successfully"); } dis.close(); pts.close(); } }
  • 35. TALK CLIENT import java.io.*; import java.net.*; public class talkclient { public static void main(String args[]) { PrintWriter out=null; String line1; BufferedReader networkln=null; try { Socket theSocket=new Socket("LocalHost",9999); networkln=new BufferedReader(new InputStreamReader(theSocket.getInputStream())); BufferedReader userln=new BufferedReader(new InputStreamReader(System.in)); out=new PrintWriter(theSocket.getOutputStream()); System.out.println("TALK CLIENT"); System.out.println("--------------------"); while(true) { System.out.println("send message to server: "); String theLine=userln.readLine(); if(theLine.equals("end")) break; out.println(theLine); out.flush(); System.out.println("message sent successfully"); System.out.println(" "); System.out.println("message received from talkserver: "+networkln.readLine()); } } catch(IOException e) { System.err.println(e); } try { if(networkln!=null) networkln.close(); if(out!=null) out.close(); } catch(Exception e) { System.err.println(e); } } }
  • 36. OUTPUT TALKSERVER C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac talkerver.java D:ChitraJava>java talkserver TALK SERVER ---------------------- Node successfully connected. Message Received The Message =HAI HI.. Message sent successfully Message Received The Message =HOW ARE YOU I AM FINE Message sent successfully Message Received The Message =K BYE end D:ChitraJava> TALKCLIENT C:Documents and SettingsMitstaff>cd C:>cd D:ChitraJava D:ChitraJava> set path=c:program filesjavajdk1.6.0_02bin D:ChitraJava>javac talkclient.java D:ChitraJava>java talkclient TALK CLIENT -------------------- send message to server: HAI message sent successfully message received from talkserver: HI.. send message to server: HOW ARE YOU message sent successfully message received from talkserver: I AM FINE send message to server: K BYE message sent successfully send message to server: end D:ChitraJava> RESULT Thus the java program is executed and output is verified successfully.
  • 37. IMPLEMENTATION OF FTP AIM: To write a java program to perform “File Transfer Protocol”. ALGORITHM SERVER SIDE 1. Import the java packages and create class fileserver. 2. String of argument is passed to the args[]. 3. Create a new server socket and bind it to the port. 4. Accept the client connection at the requested port. 5. Get the filename and stored into the BufferedReader. 6. Create a new object class file and readline. 7. If File is exists then FileReader read the content until EOF is reached. 8. Else Print FileName does‟t exits. 9. End of main. 10. End of FileServer class. CLIENT SIDE 1. Import the java packages and create class fileClient. 2. String of argument is passed to the args[]. 3. The connection between the client and server is successfully established. 4. The object of a BufferReader class is used for storing data content which have been retrieved from socket object s. 5. The content are read and stored in inp until the EOF is reached. 6. The content of file are displayed in displayed in client window and the connection is closed. 7. End of main. 8. End of Fileclient class. IMPLEMENTATION OF FTP
  • 38. SOURCE CODE SERVER import java.io.*; import java.net.*; public class fileserver1 { public static void main(String args[])throws IOException { ServerSocket s1=null; try { s1=new ServerSocket(1187); } catch(IOException u1) { System.out.println("could not found port 1187"); System.exit(1); } Socket c=null; try { c=s1.accept(); System.out.println("connection frame" +c); } catch(IOException e) { System.out.println("accept failed"); System.exit(1); } PrintWriter out=new PrintWriter(c.getOutputStream(),true); BufferedReader sin=new BufferedReader(new InputStreamReader(System.in)); System.out.println("enter the text file name"); String s=sin.readLine(); File f=new File(s); if(f.exists()) { BufferedReader in=new BufferedReader(new FileReader(s)); String v; while((v=in.readLine())!=null) {
  • 39. out.write(v); out.flush(); } System.out.println("the file send successfully"); in.close(); c.close(); s1.close(); } } } CLIENT
  • 40. import java.io.*; import java.net.*; public class fileclient1 { public static void main(String args[])throws IOException { Socket s=null; BufferedReader b=null; try { s=new Socket(InetAddress.getLocalHost(),1187); b=new BufferedReader(new InputStreamReader(s.getInputStream())); } catch(Exception u) { System.out.println("the file is received"); System.out.println("don't know host"); System.exit(1); } String inp; while((inp=b.readLine())!=null) { System.out.println("the content of the file is"); System.out.println(inp); System.out.println("the file is received successfully"); } b.close(); s.close(); } } OUTPUT: SERVER
  • 41. C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac fileserver1.java C:Program FilesJavajdk1.6.0bin>java fileserver1 connection frameSocket[addr=/127.0.0.1,port=1056,localport=1187] enter the text file name HAI.txt the file send successfully C:Program FilesJavajdk1.6.0bin> CLIENT C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac fileclient1.java C:Program FilesJavajdk1.6.0bin>java fileclient1 the content of the file is GOD LOVE'S EVERY ONE IN THE WORLD. the file is received successfully C:Program FilesJavajdk1.6.0bin> RESULT: Thus the java program is executed and output is verified successfully. REMOTE METHOD INVOCATION – FACTORIAL OF A NUMBER
  • 42. AIM: To develop a java program for implementing the remote method invocation. ALGORITHM: 1. Start the program. 2. Establish the connection between the client and the server to calculate the factorial operation. 3. In implement() it calls the inter() which throws remote exception thrown by fact(). 4. In the client URL has been specified and declared as string. 5. It calls the inter() to connect with the implement() and get the result. 6. Stop. REMOTE METHOD INVOCATION
  • 43. SOURCE CODE SERVER import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; import java.net.*; public class rmiserver { public static void main(String args[]) throws RemoteException { try { implement i=new implement(); Naming.rebind("server",i); System.out.println("server reasdy"); } catch(Exception e) { System.out.println("exception:"+e); } } }
  • 44. CLIENT: import java.io.*; import java.rmi.*; import java.rmi.registry.*; import java.net.*; public class rmiclient { public static void main(String args[]) throws RemoteException { try { String host="rmi://LABCSE105/server"; inter a=(inter)Naming.lookup(host); System.out.println("Enter a number:"); DataInputStream ds=new DataInputStream(System.in); int n=Integer.parseInt(ds.readLine()); a.fact(n); } catch(Exception e) { } } }
  • 45. IMPLEMENT: import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; public class implement extends UnicastRemoteObject implements inter { public implement() throws RemoteException { } public void fact(int n) throws RemoteException { int f=1; for(int i=1;i<=n;i++) f=f*i; System.out.println("Factorial of "+n+" is "+f); } } INTERFACE: import java.rmi.*; import java.rmi.server.*; public interface inter extends Remote { public void fact(int n) throws RemoteException; } OUTPUT
  • 46. SERVER C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac inter.java C:Program FilesJavajdk1.6.0bin>javac implement.java C:Program FilesJavajdk1.6.0bin>javac rmiserver.java C:Program FilesJavajdk1.6.0bin>start rmiregistry C:Program FilesJavajdk1.6.0bin>java rmiserver server ready Factorial of 8 is 40320 CLIENT: C:Program FilesJavajdk1.6.0bin>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac rmiclient.java C:Program FilesJavajdk1.6.0bin>java rmiclient Enter a number: 8 RESULT: Thus the java program is executed and output is verified successfully.
  • 47. 1-BIT SLIDING WINDOW PROTOCOL AIM: To write a program in java for one bit sliding window protocol. ALGORITHM: SERVER: 1. Start the program. 2. Import .net and other necessary packages. 3. Declare objects for input/oiutput and Socket to receive the frame and send acknowledgement. 4. Wait for the client to establish connection. 5. Receive the frame one by one from the socket and return the frame number as acknowledgement within the thread sleep time. 6. send acknowledgement for each receiving frame and continue the process until acknowledgement for all frames are sent. 7. when acknowledgement the last frame, exit the program. CLIENT: 1. Start the program. 2. Import .net and other necessary packages. 3. Create objects for Serversocket,socket to send the frames. 4. Display the server address when the server is connected. 5. Get the number of frames to be sent,from the user. 6. send the frist frame to servert using the socket. 7. when one frame is sent,wait for the acknowledgement from the receiver for the previous frame. 8. Make use of Thread.Sleepa()method to pause the sending of frame until acknowledgement is received. 9. when the acknowledgement is received,send the next frame. 10. Continue the process till all specified number of frames are sent and acknowledgement is received. 11. When all the frames are sent and acknowledgement is received exit the program. 1-BIT SLIDING WINDOW PROTOCOL SERVER:
  • 48. import java.lang.System; import java.net.*; import java.io.*; class bitserver { public static void main(String[] args) { try { BufferedInputStream in; ServerSocket Serversocket=new ServerSocket(500); System.out.println("waiting for connection"); Socket client=Serversocket.accept(); System.out.println("received request for sending frames"); in=new BufferedInputStream(client.getInputStream()); DataOutputStream out=new DataOutputStream(client.getOutputStream()); int p=in.read(); System.out.println("sending....."); for(int i=1;i<=p;++i) { System.out.println("sending frame no"+i); out.write(i); out.flush(); System.out.println("waiting for acknowledge"); Thread.sleep(5000); int a=in.read(); System.out.println("received acknowledge for frame no:"+i+"as"+a); } out.flush(); in.close(); out.close(); client.close(); Serversocket.close(); System.out.println("quiting"); } catch(IOException e) { System.out.println(e); } catch(InterruptedException e) {} } } CLIENT: import java.lang.System; import java.net.*;
  • 49. import java.io.*; import java.math.*; class client { public static void main(String a[]) { try { InetAddress addr=InetAddress.getByName("Localhost"); System.out.println(addr); Socket connection=new Socket(addr,500); DataOutputStream out=new DataOutputStream(connection.getOutputStream()); BufferedInputStream in=new BufferedInputStream(connection.getInputStream()); BufferedInputStream inn=new BufferedInputStream(connection.getInputStream()); BufferedReader ki=new BufferedReader(new InputStreamReader(System.in)); int flag=0; System.out.println("connect"); System.out.println("enter the no of frames to be requested to server:"); int c=Integer.parseInt(ki.readLine()); out.write(c); out.flush(); int i,jj=0; while(jj<c) { i=in.read(); System.out.println("received frame no"+i); System.out.println("sending acknowledgement for frame no"+i); out.write(i); out.flush(); jj++; } out.flush(); in.close(); inn.close(); out.close(); System.out.println("quiting"); } catch(Exception e) { System.out.println(e);}}} OUTPUT BITCLIENT C:Documents and SettingsSEENU.R>cd
  • 50. C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac bitclient.java C:Program FilesJavajdk1.6.0bin>java bitclient Localhost/127.0.0.1 connect enter the no of frames to be requested to server: 4 received frame no1 sending acknowledgement for frame no1 received frame no2 sending acknowledgement for frame no2 received frame no3 sending acknowledgement for frame no3 received frame no4 sending acknowledgement for frame no4 quiting C:Program FilesJavajdk1.6.0bin> BITSERVER C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac bitserver.java C:Program FilesJavajdk1.6.0bin>java bitserver waiting for connection received request for sending frames sending..... sending frame no1 waiting for acknowledge received acknowledge for frame no:1as1 sending frame no2 waiting for acknowledge received acknowledge for frame no:2as2 sending frame no3 waiting for acknowledge received acknowledge for frame no:3as3 sending frame no4 waiting for acknowledge received acknowledge for frame no:4as4 quiting C:Program FilesJavajdk1.6.0bin> RESULT: Thus the java program is executed and output is verified successfully..
  • 51. IMPLEMENTATION OF REMOTE COMMAND EXECUTION AIM: To perform remote command execution (ie) command entered by the user at the client should be executed by the server. ALGORITHM: SERVER: 1. Create server and client socket. 2. Create a runtime object using getRuntime() method. 3. Create a process object p. 4. Read the command entered by the user at the client using input streams. 5. Execute the command using the exec(). CLIENT: 1. Create a client socket corresponding to the required server and port. 2. Promote the user to enter the command. 3. Read the command using input streams. 4. Write the command to the server using output streams. 5. lose the streams and socket. SOURCE CODE
  • 52. SERVER import java.io.*; import java.net.*; import java.lang.*; class RCEserver { public static void main(String a[])throws IOException,UnknownHostException,InterruptedException { ServerSocket ss=new ServerSocket(1000); Socket cs=ss.accept(); Runtime r=Runtime.getRuntime(); Process p=null; InputStream is=cs.getInputStream(); DataInputStream dis=new DataInputStream(is); String s=dis.readLine(); System.out.println(s); p=r.exec(s); p.waitFor(); } } CLIENT
  • 53. import java.io.*; import java.net.*; import java.lang.*; public class RCEclient { public static void main(String a[])throws UnknownHostException,IOException { Socket c=new Socket("localhost",1000); System.out.println("Enter cmd:"); DataInputStream dis=new DataInputStream(System.in); String s=dis.readLine(); OutputStream os=c.getOutputStream(); DataOutputStream dos=new DataOutputStream(os); dos.write(s.getBytes()); dos.close(); dis.close(); c.close(); } } OUTPUT
  • 54. SERVER C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac RCEserver.java C:Program FilesJavajdk1.6.0bin>java RCEserver calc CLIENT C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac RCEclient.java. C:Program FilesJavajdk1.6.0bin>java RCEclient Enter cmd: calc C:Program FilesJavajdk1.6.0bin> RESULT: Thus the java program is executed and output is verified successfully. BROADCASTING
  • 55. AIM: To write a java program to send a single message to multiclient. ALGORITHM: SENDER: 1. Start the program. 2. Import .net and other necessary packages. 3. The DatagramSocket and the DataInputStream are initialized. 4. The buffer is declare for message. 5. The message is obtained from the user. 6. The message is delievered to the client one by one with the help of the Datagram Packet. 7. The client details is obtained. 8. If message is „bye‟ then the server quits. CLIENT: 1. Start the program. 2. Import .net and other necessary packages. 3. The DatagramSocket and DatagramPacket are initialized. 4. The message from sender is takeb as the packet from buffer. 5. The message is displayed along with the IP address of the server. 6. If the message is „bye‟ then the client quits from the transmission and the connection is terminated. BROADCASTING
  • 56. SOURCE CODE SERVER import java.net.*; import java.io.*; public class server { public static void main(String args[]) throws Exception { DatagramSocket socket=new DatagramSocket(); DataInputStream in=new DataInputStream(System.in); String msg=" "; String client=" "; byte[] buf=new byte[1025]; while(true) { System.out.println("Server"); msg=in.readLine(); buf=msg.getBytes(); for(int i=1;i<=10;i++) { try { client=("sys"+i); DatagramPacket packet=new DatagramPacket(buf,buf.length,InetAddress.getByName(client),5000); socket.send(packet); System.out.println("Message successfully sent to client:"+client); } catch(Exception e) { System.out.println("Unable to connect at "+client+e); } if(msg.equalsIgnoreCase("Bye")) { System.out.println("Server quits"); return; } } } } } CLIENT:
  • 57. import java.net.*; import java.io.*; public class client { public static void main(String args[]) throws Exception { DatagramSocket socket=new DatagramSocket(5000); while(true) { try { byte[] buf=new byte[1025]; DataInputStream in=new DataInputStream(System.in); String msg=null; DatagramPacket packet=new DatagramPacket(buf,buf.length); socket.receive(packet); msg=new String(packet.getData(),0,packet.getLength()); InetAddress addr=packet.getAddress(); System.out.println("From :"+addr+"message"+msg); if(msg.equalsIgnoreCase("Bye")) { System.out.println("Quits"); return; } } catch(Exception e) { System.out.println("Error:"+e); } } } } OUTPUT BROADSERVER
  • 58. C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0_14bin C:Program FilesJavajdk1.6.0_14bin>javac broadsender.java Note: broadsender.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. C:Program FilesJavajdk1.6.0_14bin>java broadsender Server GOOD MORNING Unable to connect at sys1java.net.UnknownHostException: sys1 Unable to connect at sys2java.net.UnknownHostException: sys2 Unable to connect at sys3java.net.UnknownHostException: sys3 Unable to connect at sys4java.net.UnknownHostException: sys4 Unable to connect at sys5java.net.UnknownHostException: sys5 Unable to connect at sys6java.net.UnknownHostException: sys6 Unable to connect at sys7java.net.UnknownHostException: sys7 Unable to connect at sys8java.net.UnknownHostException: sys8 Unable to connect at sys9java.net.UnknownHostException: sys9 Unable to connect at sys10java.net.UnknownHostException: sys10 Server BYE Unable to connect at sys1java.net.UnknownHostException: sys1 Server quits C:Program FilesJavajdk1.6.0_14bin> BROADRECEIVER C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0_14bin C:Program FilesJavajdk1.6.0_14bin>javac broadreceive.java C:Program FilesJavajdk1.6.0_14bin>java broadreceive RESULT: Thus the java program is executed and output is verified successfully. CYCLIC REDUNDANCY CHECK
  • 59. AIM: To write a java program to implement cyclic redundancy check. ALGORITHM: 1. Start the program. 2. Import necessary packages. 3. Get an user input in the form of bit data ie string. 4. Get an generator data from the user. 5. Read the length of the string and convert the data into another format by deducing 48 from it. 6. Now Add the generator data to the original data and send the string as transmitter string. 7. In the receiving end, enter the generator code. 8. Using the generator code, to the length of the received string, add 48 to the number format of the string by character. 9. If the generator string is wrong, display “message received with error”. 10. If the generator string is correct, perform step 8 and display “message received with no error”. 11. End the program. CYCLIC REDUNDANCY CHECK SOURCE CODE
  • 60. import java.io.*; import java.lang.*; public class crc { public static void main(String args[]) throws IOException { int f[]=new int[25]; int gen[]=new int[10]; int rem[]=new int[10]; int flen,glen,rlen,i,j; int p,sum,iframe,igen,irem; String data; BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter the frame:"); data=in.readLine(); flen=data.length()-1; for(i=0;i<data.length();i++) f[i]=((int)(data.charAt(i)))-48; System.out.println("Enter the generator:"); data=in.readLine(); glen=data.length()-1; for(i=1;i<=glen;i++) f[flen+i]=0; flen=flen+glen; for(i=0;i<data.length();i++) gen[i]=((int)(data.charAt(i)))-48; p=0; sum=0; for(i=flen;i>=0;i--) { sum=sum+(f[i]*(int)Math.pow(2,p)); p=p+1; } iframe=sum; p=0; sum=0; for(i=glen;i>=0;i--) { sum=sum+(gen[i]*(int)Math.pow(2,p)); p=p+1; } igen=sum; irem=iframe%igen; irem=igen-irem;
  • 61. iframe+=irem; i=0; while(iframe>0) { f[i]=iframe%2; iframe=iframe/2; i++; } if(iframe==1) f[i]=iframe; System.out.println("Transmitted string:"); for(i=flen;i>=0;i--) System.out.print(f[i]); System.out.println("n enter the received string:"); data=in.readLine(); flen=data.length()-1; for(i=0;i<data.length();i++) f[i]=((int)(data.charAt(i)))-48; p=0; sum=0; for(i=flen;i>=0;i--) { sum=sum+(f[i]*(int)Math.pow(2,p)); p=p+1; } iframe=sum; irem=iframe%igen; if(irem==0) System.out.println("Message received with no error"); else System.out.println("Message received with error"); } } OUTPUT C:Documents and SettingsSEENU.R>cd C:>cd C:Program FilesJavajdk1.6.0bin
  • 62. C:Program FilesJavajdk1.6.0bin>javac crc.java C:Program FilesJavajdk1.6.0bin>java crc Enter the frame: 10101011 Enter the generator: 1011 Transmitted string: 10101011111 enter the received string: 1011 Message received with no error C:Program FilesJavajdk1.6.0bin>java crc Enter the frame: 10101011 Enter the generator: 1011 Transmitted string: 10101011111 enter the received string: 1001 Message received with error C:Program FilesJavajdk1.6.0bin> RESULT: Thus the java program is executed and output is verified successfully. SHOREST PATH AIM: To implement the shortest path routing (Dijkstra‟s Algorithm) to find the shortest path between the nodes.
  • 63. ALGORITHM: 1. Dijkstra‟s shortest path algorithm computes all shortest path from a single node. 2. It can also be used for the all pairs shortest path problem,by the simple expledient of applying it N times once to each vertex. 3. Get the number of nodes in the network for which the shortest path is to be calculated. 4. Represent the nodes that are connected by cost value(Number of hopes delay bandwidth, etc.,) and nodes that are not connected by infinite value in an adjacent matrix. 5. To find the shortest path between node follow the steps as stated below. a. Initially,T=V, where T= set of nodes and V= nodes for which the shortest path is to be found. b. At each step of the algorithm the vertex in T with the smalled d value is removed from T. c. Each neighbour of in T is examined would be shorter than the currently best known path. 6. The last paths that remain between the nodes are the shortest path between the source node and the destination nodes. OUTPUT SOURCE CODE: import java.net.*; import java.io.*; class spath
  • 64. { public static void main(String args[]) throws IOException { int n,s,d,i,j,y=0,sd=100; int[] in=new int[10]; int[][] m=new int[5][5]; int[] dis=new int[10]; int[] path=new int[10]; DataInputStream a=new DataInputStream(System.in); System.out.println("Enter the no of vertex:"); n=Integer.parseInt(a.readLine()); System.out.println("Enter the source vertex:"); s=Integer.parseInt(a.readLine()); System.out.println("Enter the destination vertex:"); d=Integer.parseInt(a.readLine()); for(i=1;i<n;i++) { j=1; while(j<n) { System.out.println("Enter the distance between"+i+ "and" +(j+1)); m[i][j+1]=Integer.parseInt(a.readLine()); m[j+1][i]=m[i][j+1]; j++; } } for(i=1;i<=n;i++) { in[i]=0; dis[i]=m[s][i]; if(m[s][i]!=0) path[i]=s; } in[s]=1; dis[s]=0; for(i=2;i<n;i++) { for(j=1;j<=n;j++) { if(in[j]==0) { if(dis[j]<sd) { sd=dis[j]; y=j; }
  • 65. } } in[y]=1; for(j=1;j<=n;j++) { if((in[j]==0)&&(m[y][j]!=0)) { if((dis[y]+m[y][j])<dis[j]) { dis[j]=dis[y]+m[y][j]; path[j]=y; } } } } System.out.println(" "+d+"<----"); i=d; while(path[i]!=s) { System.out.println(" "+path[i]+"<----"); i=path[i]; } System.out.println(" "+s); System.out.println("Distance is "+dis[d]); } } OUTPUT: C:Documents and SettingsLABCSE1>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac spath.java C:Program FilesJavajdk1.6.0bin>java spath
  • 66. Enter the no of vertex: 3 Enter the source vertex: 1 Enter the destination vertex: 3 Enter the distance between1and2 2 Enter the distance between1and3 1 Enter the distance between2and2 0 Enter the distance between2and3 0 3<---- 1 Distance is 1 C:Program FilesJavajdk1.6.0bin>java spath Enter the no of vertex: 4 Enter the source vertex: 1 Enter the destination vertex: 4 Enter the distance between1and2 2 Enter the distance between1and3 3 Enter the distance between1and4 5 Enter the distance between2and2 0 Enter the distance between2and3 0 Enter the distance between2and4 2 Enter the distance between3and2 0 Enter the distance between3and3
  • 67. 0 Enter the distance between3and4 3 4<---- 2<---- 1 Distance is 4 C:Program FilesJavajdk1.6.0bin> RESULT: Thus the java program is executed and output is verified successfully. CRYPTOGRAPHY AIM: To write a java program to implement client server cryptography.
  • 68. ALGORITHM: SERVER: 1. Start the program. 2. Import .net and other necessary packages. 3. Declare objects for Socket,ServerSocket and PrintStream to transfer the encrypted string. 4. Initialize string variables to null. 5. Get an integer value from the user as key and a string from the user. 6. Read the string in character format to its length using charAt(). 7. Convert each character to integer and add the key value to display it as a encrypted string. 8. Send the encrypted string and value to the client using PrintStream an Socket. 9. After sending the string and key exit the program. CLIENT: 1. Start the program. 2. Import .net and other necessary packages. 3. Declare objects for Socket and InputStream to receive the string and key from server. 4. Store the string and key to different variables. 5. Read the string character wise to its length. 6. Request the user to enter the key for decryption. 7. Compare the key with the received key; 8. If both keys are equal then, -Convert the each charater of the string to integer and deduce the key value. - Convert the integer value to character and form it into a string and display the decrypted string. Else -Print the message as cannot decrypt, wrong message and quit. 9. End the program. SOURCE CODE SERVER import java.io.*; import java.net.*; class encrypserver
  • 69. { public static void main(String a[])throws Exception { try { ServerSocket ss=new ServerSocket(1000); Socket s=ss.accept(); PrintStream ps=new PrintStream(s.getOutputStream()); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String s2="",s3=""; int i=0,k; System.out.println("n Enter a String :"); String s1=br.readLine(); System.out.print("n Enter the key:"); k=Integer.parseInt(br.readLine()); while(i<s1.length()) { char c1=s1.charAt(i++); int n=(int)c1+k+1; c1=(char)n; s2+=c1; n=(int)c1-k-1; c1=(char)n; s3+=c1; } System.out.print("n Encrypted String :"+s2); ps.println(s2); ps.println(k); ps.close(); s.close(); ss.close(); } catch(Exception e) { System.out.print("n Error :"+e); } } } CLIENT import java.io.*; import java.net.*; class decrypclient { public static void main(String args[])throws Exception
  • 70. { try { Socket s=new Socket("LocalHost",1000); BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream())); BufferedReader brs=new BufferedReader(new InputStreamReader(System.in)); String s1="",s2=""; s1=br.readLine(); int k1=Integer.parseInt(br.readLine()); int i=0; System.out.print("n Encrypted sender String :"+s1); System.out.print("n Enter the key :"); int k=Integer.parseInt(brs.readLine()); if(k==k1) { while(i<s1.length()) { char c1=s1.charAt(i++); int n=(int)c1-k-1; c1=(char)n; s2+=c1; } System.out.print("n Decrypted String :"+s2); } else { System.out.print("n U r unable to decrypt...Wrong key..."); System.exit(0); } } catch(Exception e) { System.out.print("n Error :"+e); } } } OUTPUT SERVER C:Documents and SettingsLABCSE1>cd C:>cd C:Program FilesJavajdk1.6.0bin
  • 71. C:Program FilesJavajdk1.6.0bin>javac encrypserver.java C:Program FilesJavajdk1.6.0bin>java encrypserver Enter a String : GOD IS GREAT Enter the key:8 Encrypted String :PXM)R)P[NJ] C:Program FilesJavajdk1.6.0bin> CLIENT C:Documents and SettingsLABCSE1>cd C:>cd C:Program FilesJavajdk1.6.0bin C:Program FilesJavajdk1.6.0bin>javac decrypclient.java C:Program FilesJavajdk1.6.0bin>java decrypclient Encrypted sender String :PXM)R)P[NJ] Enter the key :8 Decrypted String :GOD IS GREAT C:Program FilesJavajdk1.6.0bin> RESULT: Thus the java program is executed and output is verified successfully.