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

Practical 17

This document discusses Java programs that use datagram packets and sockets to create a chat application, copy files between computers, and transfer files from one location to another. It provides code examples for the server and client implementations for each program type.

Uploaded by

shrub125io
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)
14 views9 pages

Practical 17

This document discusses Java programs that use datagram packets and sockets to create a chat application, copy files between computers, and transfer files from one location to another. It provides code examples for the server and client implementations for each program type.

Uploaded by

shrub125io
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 : Pranjal Shahane CO5I Roll No. : 06

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
Advanced Java Programming

Scanner scanner = new Scanner(System.in);


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();
}
}
}
}
Advanced Java Programming

OUTPUT:

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)
Advanced Java Programming

serverSocket.receive(receivePacket);
int bytesRead = receivePacket.getLength();
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) {
Advanced Java Programming

fileInputStream.close();
}
if (clientSocket != null && !clientSocket.isClosed()) {
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,
Advanced Java Programming

buffer.length);
FileOutputStream fileOutputStream = new
FileOutputStream("destination.txt");
while (true) {
socket.receive(packet);
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();
}
}
}
OUTPUT:

Client CODE:
import java.io.*;
import java.net.*;
Advanced Java Programming

public class practical17Cclient {


public static void main(String[] args) {
String sourceFileName = "source_file.txt";
try {
DatagramSocket socket = new DatagramSocket();
InetAddress serverAddress = InetAddress.getByName("localhost");
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