10.
Write a program on Datagram socket for Client/server to display the messages on
client side, typed at the server side
// server program
import java.net .*;
import java.io.*;
public class UDPFactServer {
public static void main(String args[]) throws Exception {
byte[] rbuf = new byte[10], sbuf = new byte[10];
DatagramSocket socket = new DatagramSocket(6000);
System.out.println(" server ready");
DatagramPacket rpkt = new DatagramPacket(rbuf, rbuf.length);
socket.receive(rpkt);
String data = new String(rpkt.getData(), 0, rpkt.getLength());
InetAddress addr = rpkt.getAddress();
int port = rpkt.getPort();
int fact = 1, n = Integer.parseInt(data);
System.out.println(" Received: " + n + " from" + addr + ":" + port);
for (int i =2; i<=n; i++)
fact *=i;
sbuf = String.valueOf(fact).getBytes();
DatagramPacket spkt = new DatagramPacket(sbuf, sbuf.length, addr, port);
socket.send(spkt);
System.out.println(" Factorial of the integer sent: " + fact);
}
}
1
// Client program
import java.net .*;
import java.io.*;
public class UDPFactClient {
public static void main(String args[]) throws Exception {
byte[] rbuf = new byte[1024], sbuf = new byte[1024];
BufferedReader fromUser = new BufferedReader(new InputStreamReader(System.in));
DatagramSocket socket = new DatagramSocket();
InetAddress addr = InetAddress.getByName(args[0]);
System.out.println(" enter an integer");
String data = fromUser.readLine();
sbuf = data.getBytes();
DatagramPacket spkt = new DatagramPacket(sbuf, sbuf.length, addr, 6000);
socket.send(spkt);
System.out.println("sent to server : " + data);
DatagramPacket rpkt = new DatagramPacket(rbuf, rbuf.length);
socket.receive(rpkt);
data = new String(rpkt.getData(), 0, rpkt.getLength());
System.out.println(" received from server: " + data);
}
}
2
Commands to Run
First run the server program in Terminal 1 and then run the client program in Terminal 2
Terminal 1
Terminal 2