Advanced Java Programming Practical 17

Question 1
Write a program using DatagramPacket and DatagramSocket to create chat application
Clientdatagram.java
Java
				import java.io.*;
import java.net.*;
class Clientdatagram {
    public static void main(String x[]) throws Exception
    {
        InetAddress receiver = InetAddress.getByName("localhost");
        int port = 9999;
        DatagramSocket mysocket = new DatagramSocket();
        DataInputStream din = new DataInputStream(System.in);
        while (true) {
            System.out.println("Client enter message: ");
            String msg = din.readLine();
            byte[] sendmsg = msg.getBytes();
            DatagramPacket sp = new DatagramPacket(sendmsg, sendmsg.length, receiver, port);
            mysocket.send(sp);
            int len = 100;
            byte[] revmsg = new byte[100];
            DatagramPacket rp = new DatagramPacket(revmsg, revmsg.length);
            mysocket.receive(rp);
            String received = new String(rp.getData(),0,rp.getLength());
            System.out.println("Reply From server: " + received);
        }
    }
}
			
Serverdatagram.java
Java
				import java.io.*;
import java.net.*;
class Serverdatagram
{
    public static void main(String x[])throws Exception
    {
        int len=100,port=9999;
        DatagramSocket ms= new DatagramSocket(port);
        DataInputStream din = new DataInputStream(System.in);
        byte[] revmsg=new byte[len];
        System.out.println("Server running.......");
        while(true)
        {
            DatagramPacket cp = new DatagramPacket(revmsg, revmsg.length);
            ms.receive(cp);
            String msg = new String(cp.getData(),0,cp.getLength());
            System.out.println("From client: " + msg);
            InetAddress ca = cp.getAddress();
            int cport = cp.getPort();
            System.out.println("Server enter message: ");
            String replymsg = din.readLine();
            byte[] sendmsg = replymsg.getBytes();
            DatagramPacket sp = new DatagramPacket(sendmsg, sendmsg.length, ca, cport);
            ms.send(sp);
        }
    }
}
			
Output
Question 2
Write a program using DatagramPacket and DataGramSocket to copy the contents of one file into other.
ClientFile.java
Java
				import java.net.*;
import java.io.*;
public class ClientFile
{
    public static void main(String args[])throws Exception
    {
        byte b[] = new byte[1024];
        int ch;
        System.out.println("Client started...");
        FileInputStream f = new FileInputStream("clientfile.txt");
        DatagramSocket ds = new DatagramSocket();
        int i=0;
        while((ch=f.read())!=-1)
        {
            b[i]=(byte)ch;
            i++;
        }
        ds.send(new DatagramPacket(b,i,InetAddress.getLocalHost(),9999));
        f.close();
        System.out.println("File data sent to server");
    }
}
			
ServerFile.java
Java
				import java.net.*;
import java.io.*;
public class ServerFile
{
    public static void main(String args[])throws IOException
    {
        byte b[]=new byte[3072];
        DatagramSocket ds=new DatagramSocket(9999);
        System.out.println("Server running......");
        FileOutputStream f=new FileOutputStream("serverfile.txt");
        DatagramPacket dp=new DatagramPacket(b,b.length);
        ds.receive(dp);
        String data = new String(dp.getData(),0,dp.getLength());
        f.write(data.getBytes(), 0, data.length());
        System.out.println("Data saved to file");
    }
}
			
Output

Leave a Comment

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