0% found this document useful (0 votes)
28 views9 pages

Ashwin Pawar 23 Practical: 17: Name: Roll No.

This document contains code for three Java programs that use datagram packets and sockets to implement different communication applications: 1. A chat application where a server and client can exchange text messages. 2. A file transfer program where a server receives a file sent by a client. 3. A file transfer program where a file is transferred from one computer to another.

Uploaded by

gmpawar003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views9 pages

Ashwin Pawar 23 Practical: 17: Name: Roll No.

This document contains code for three Java programs that use datagram packets and sockets to implement different communication applications: 1. A chat application where a server and client can exchange text messages. 2. A file transfer program where a server receives a file sent by a client. 3. A file transfer program where a file is transferred from one computer to another.

Uploaded by

gmpawar003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Advanced Java Programming

Name : ASHWIN PAWAR CO5I Roll No. : 23

Practical : 17

Q. Write a program using datagrampacket and datagram socket to create


chat application
Server CODE:
import java.io.*;
import java.net.*;

public class practical17AServer {


public static void main(String[] args) {
DatagramSocket serverSocket = null;
try {
serverSocket = new DatagramSocket(9876); // Server listens on port 9876
System.out.println("Server is running. Waiting for clients...");
while (true) {
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData,
receiveData.length);
serverSocket.receive(receivePacket);
String receivedMessage = new String(receivePacket.getData(), 0,
receivePacket.getLength());
InetAddress clientAddress = receivePacket.getAddress();
int clientPort = receivePacket.getPort();
System.out.println("Client (" + clientAddress.getHostAddress() + ":" + clientPort +
"): " + receivedMessage);
String responseMessage = "Server received: " + receivedMessage;
byte[] responseData = responseMessage.getBytes();
DatagramPacket responsePacket = new DatagramPacket(responseData,
responseData.length, clientAddress, clientPort);
Advanced Java Programming

serverSocket.send(responsePacket);
}
} catch (IOException e) {

e.printStackTrace();
} finally {
if (serverSocket != null && !serverSocket.isClosed()) {
serverSocket.close();
}
}
}
}
OUTPUT:

Client CODE:
import java.io.*;
import java.net.*;
import java.util.Scanner;

public class practical17AClient {


public static void main(String[] args) {
DatagramSocket clientSocket = null;
try {
clientSocket = new DatagramSocket();
InetAddress serverAddress = InetAddress.getByName("localhost"); // Change to the
server's IP

Scanner scanner = new Scanner(System.in);


Advanced Java Programming

while (true) {
System.out.print("Enter a message to send (or 'exit' to quit): ");
String message = scanner.nextLine();
if ("exit".equalsIgnoreCase(message)) {
break;
}
byte[] sendData = message.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length,
serverAddress, 9876);
clientSocket.send(sendPacket);
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData,
receiveData.length);
clientSocket.receive(receivePacket);
String receivedMessage = new String(receivePacket.getData(), 0,
receivePacket.getLength());
System.out.println("Server: " + receivedMessage);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (clientSocket != null && !clientSocket.isClosed()) {
clientSocket.close();
}
}
}
}

OUTPUT:
Advanced Java Programming

Q. Write a program using datagrampacket and datagram socket to copy


the content of one file to another

Server CODE:

import java.io.*;
import java.net.*;
public class FileCopyServer {
public static void main(String[] args) {
DatagramSocket serverSocket = null;
FileOutputStream fileOutputStream = null;
try {
serverSocket = new DatagramSocket(9876); // Server listens on
port 9876
fileOutputStream = new FileOutputStream("received_file.txt");
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new
DatagramPacket(receiveData, receiveData.length);
System.out.println("Server is running. Waiting for file...");
while (true) {
Advanced Java Programming(22517)
serverSocket.receive(receivePacket);
int bytesRead = receivePacket.getLength();
Advanced Java Programming

if (bytesRead <= 0) {
break; // End of file
}
fileOutputStream.write(receivePacket.getData(), 0,
bytesRead);
}
System.out.println("File received successfully.");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileOutputStream != null) {
fileOutputStream.close();
}
if (serverSocket != null && !serverSocket.isClosed()) {
serverSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
OUTPUT:
Advanced Java Programming

Client CODE:
import java.io.*;
import java.net.*;

public class practical17Bclient {


public static void main(String[] args) {
DatagramSocket clientSocket = null;
FileInputStream fileInputStream = null;
try {
clientSocket = new DatagramSocket();
InetAddress serverAddress = InetAddress.getLocalHost();
fileInputStream = new FileInputStream("source_file.txt");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
DatagramPacket sendPacket = new DatagramPacket(buffer,
bytesRead, serverAddress, 9876); // Server port 9876
clientSocket.send(sendPacket);
}
DatagramPacket endPacket = new DatagramPacket(new byte[0], 0, serverAddress,
9876);
clientSocket.send(endPacket);
System.out.println("File sent successfully.");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileInputStream != null) {
fileInputStream.close();
}
if (clientSocket != null && !clientSocket.isClosed()) {
Advanced Java Programming

clientSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
OUTPUT:

Q. Write a program using datagrampacket and datagram socket to


transfer file from one location to another

Server CODE:
import java.io.*;
import java.net.*;

public class practical17Cserver {


public static void main(String[] args) {
try {
DatagramSocket socket = new DatagramSocket(12346);

byte[] buffer = new byte[1024];


DatagramPacket packet = new DatagramPacket(buffer,
buffer.length);
FileOutputStream fileOutputStream = new
FileOutputStream("destination.txt");
while (true) {
socket.receive(packet);
Advanced Java Programming

fileOutputStream.write(packet.getData(), 0,
packet.getLength());
if (packet.getLength() < buffer.length) {
break;
}
}
fileOutputStream.close();
socket.close();
System.out.println("File received successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}

Client CODE:
import java.io.*;
import java.net.*;

public class practical17Cclient {


public static void main(String[] args) {
String sourceFileName = "source_file.txt";
try {
DatagramSocket socket = new DatagramSocket();
InetAddress serverAddress = InetAddress.getByName("localhost");
Advanced Java Programming

FileInputStream fileInputStream = new


FileInputStream(sourceFileName);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
DatagramPacket packet = new DatagramPacket(buffer, bytesRead,
serverAddress, 12345);
socket.send(packet);
}
fileInputStream.close();
socket.close();
System.out.println("File sent successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
OUTPUT:

You might also like