0% found this document useful (0 votes)
2 views11 pages

Java Socket Programming Answers Compact

Uploaded by

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

Java Socket Programming Answers Compact

Uploaded by

adas011975
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Java Network Programming & Socket Communications

1. TCP Client-Server Communication (Message Passing)

Question: Write a program to implement TCP Client-Server Communication (Message Passing) using Sockets.
Server ([Link])
import [Link].*;
import [Link].*;
public class TCPServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5000);
[Link]("TCP Server listening on port 5000...");
Socket socket = [Link]();
[Link]("Client connected.");
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
PrintWriter writer = new PrintWriter([Link](), true);
String clientMessage = [Link]();
[Link]("Received from client: " + clientMessage);
[Link]("Hello from TCP Server!");
[Link]();
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Client ([Link])
import [Link].*;
import [Link].*;
public class TCPClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 5000);
PrintWriter writer = new PrintWriter([Link](), true);
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
[Link]("Hello Server, I am the TCP Client.");
String response = [Link]();
[Link]("Server says: " + response);
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Output
Server Terminal:
javac [Link]
java TCPServer
TCP Server listening on port 5000...
Client connected.
Received from client: Hello Server, I am the TCP Client.
Client Terminal:
javac [Link]
java TCPClient
Server says: Hello from TCP Server!

1
2. UDP Client-Server Communication (Message Passing)

Question: Write a program to implement UDP Client-Server Communication (Message Passing) using Sockets.
Server ([Link])
import [Link].*;
public class UDPServer {
public static void main(String[] args) {
try {
DatagramSocket socket = new DatagramSocket(5001);
byte[] buffer = new byte[1024];
[Link]("UDP Server listening on port 5001...");
DatagramPacket packet = new DatagramPacket(buffer, [Link]);
[Link](packet);
String message = new String([Link](), 0, [Link]());
[Link]("Received from client: " + message);
String reply = "Hello from UDP Server!";
byte[] replyData = [Link]();
DatagramPacket replyPacket = new DatagramPacket(
replyData, [Link], [Link](), [Link]());
[Link](replyPacket);
[Link]();
} catch (Exception e) {
[Link]();
}
}
}

Client ([Link])
import [Link].*;
public class UDPClient {
public static void main(String[] args) {
try {
DatagramSocket socket = new DatagramSocket();
InetAddress address = [Link]("localhost");
String message = "Hello Server, I am the UDP Client.";
byte[] data = [Link]();
DatagramPacket packet = new DatagramPacket(data, [Link], address, 5001);
[Link](packet);
byte[] buffer = new byte[1024];
DatagramPacket replyPacket = new DatagramPacket(buffer, [Link]);
[Link](replyPacket);
String reply = new String([Link](), 0, [Link]());
[Link]("Server says: " + reply);
[Link]();
} catch (Exception e) {
[Link]();
}
}
}

Output
Server Terminal:
javac [Link]
java UDPServer
UDP Server listening on port 5001...
Received from client: Hello Server, I am the UDP Client.
Client Terminal:
javac [Link]
java UDPClient
Server says: Hello from UDP Server!

2
3. TCP Client-Server Communication (File Passing)

Question: Write a program to implement TCP Client-Server Communication (File Passing) using Sockets.
Server ([Link])
import [Link].*;
import [Link].*;
public class FileServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5002);
[Link]("File Server waiting on port 5002...");
Socket socket = [Link]();
[Link]("Client connected.");
FileInputStream fileInput = new FileInputStream("[Link]");
OutputStream output = [Link]();
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = [Link](buffer)) != -1) {
[Link](buffer, 0, bytesRead);
}
[Link]("File sent successfully.");
[Link]();
[Link]();
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Client ([Link])
import [Link].*;
import [Link].*;
public class FileClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 5002);
InputStream input = [Link]();
FileOutputStream fileOutput = new FileOutputStream("received_sample.txt");
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = [Link](buffer)) != -1) {
[Link](buffer, 0, bytesRead);
}
[Link]("File received as received_sample.txt");
[Link]();
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Output
Before Running:
[Link] contains: This file is sent using TCP socket programming.
Server Terminal:
File Server waiting on port 5002...
Client connected.
File sent successfully.
Client Terminal:
File received as received_sample.txt
received_sample.txt:
This file is sent using TCP socket programming.

3
4. TCP Plain Text Sent and Cipher Text Received

Question: Write a program to implement TCP Client-Server Communication (Message Passing) using Sockets
where Server will send Plain text message but Client will receive Cipher text message.
Server ([Link])
import [Link].*;
import [Link].*;
public class CipherServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5003);
Socket socket = [Link]();
PrintWriter writer = new PrintWriter([Link](), true);
String plainText = "HELLO CLIENT";
[Link](plainText);
[Link]("Plain text sent: " + plainText);
[Link]();
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Client ([Link])
import [Link].*;
import [Link].*;
public class CipherClient {
static String encrypt(String text, int shift) {
StringBuilder cipher = new StringBuilder();
for (char ch : [Link]()) {
if ([Link](ch)) {
char base = [Link](ch) ? 'A' : 'a';
ch = (char) ((ch - base + shift) % 26 + base);
}
[Link](ch);
}
return [Link]();
}
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 5003);
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
String plainText = [Link]();
String cipherText = encrypt(plainText, 3);
[Link]("Plain text received: " + plainText);
[Link]("Cipher text: " + cipherText);
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Output
Server Terminal:
Plain text sent: HELLO CLIENT
Client Terminal:
Plain text received: HELLO CLIENT
Cipher text: KHOOR FOLHQW

4
5. TCP Message Passing with Particular String Length

Question: Write a program to implement TCP Client-Server Communication (Message Passing) using Sockets
where Server will send Plain text message but Client will receive a particular part (String Length) of that sent
message.
Server ([Link])
import [Link].*;
import [Link].*;
public class StringServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5004);
Socket socket = [Link]();
PrintWriter writer = new PrintWriter([Link](), true);
String message = "Computer Networking Laboratory";
[Link](message);
[Link]("Message sent: " + message);
[Link]();
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Client ([Link])
import [Link].*;
import [Link].*;
public class StringClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 5004);
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
int length = 8;
String message = [Link]();
String part = [Link](0, length);
[Link]("Complete message: " + message);
[Link]("Required length: " + length);
[Link]("Part received: " + part);
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Output
Server Terminal:
Message sent: Computer Networking Laboratory
Client Terminal:
Complete message: Computer Networking Laboratory
Required length: 8
Part received: Computer

5
6. TCP File Passing with File Selection

Question: Write a program to implement TCP Client-Server Communication (File Passing) using Sockets where
Client can choose selected files from the list of files provided by the Server.
Server ([Link])
import [Link].*;
import [Link].*;
public class SelectFileServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5005);
Socket socket = [Link]();
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
PrintWriter writer = new PrintWriter([Link](), true);
File folder = new File("server_files");
File[] files = [Link]();
for (File file : files) {
[Link]([Link]());
}
[Link]("END");
String selectedFile = [Link]();
File fileToSend = new File(folder, selectedFile);
if ([Link]()) {
[Link]("FOUND");
FileInputStream fileInput = new FileInputStream(fileToSend);
OutputStream output = [Link]();
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = [Link](buffer)) != -1) {
[Link](buffer, 0, bytesRead);
}
[Link]();
[Link]("Sent file: " + selectedFile);
} else {
[Link]("NOT_FOUND");
}
[Link]();
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Client ([Link])
import [Link].*;
import [Link].*;
public class SelectFileClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 5005);
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
PrintWriter writer = new PrintWriter([Link](), true);
[Link]("Available files:");
String fileName;
while (!(fileName = [Link]()).equals("END")) {
[Link](fileName);
}
String selectedFile = "[Link]";
[Link](selectedFile);
String status = [Link]();
if ([Link]("FOUND")) {
FileOutputStream fileOutput =
new FileOutputStream("downloaded_" + selectedFile);
InputStream input = [Link]();
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = [Link](buffer)) != -1) {

6
[Link](buffer, 0, bytesRead);
}
[Link]();
[Link]("Downloaded: downloaded_" + selectedFile);
} else {
[Link]("Selected file not found.");
}
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Output
Server Folder:
server_files/[Link]
server_files/[Link]
server_files/[Link]
Server Terminal:
Sent file: [Link]
Client Terminal:
Available files:
[Link]
[Link]
[Link]
Downloaded: downloaded_notes.txt

7
7. TCP Password Authentication with Three Attempts

Question: Write a program to implement TCP Client-Server Communication using Sockets where Server-Client
Connection can be built using Given Password, then Password can be changed but with wrong password the
message will come as "Try Again" and maximum 3 Attempts are available.
Server ([Link])
import [Link].*;
import [Link].*;
public class PasswordServer {
public static void main(String[] args) {
String password = "admin123";
try {
ServerSocket serverSocket = new ServerSocket(5006);
Socket socket = [Link]();
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
PrintWriter writer = new PrintWriter([Link](), true);
boolean authenticated = false;
for (int attempt = 1; attempt <= 3; attempt++) {
String receivedPassword = [Link]();
if ([Link](password)) {
[Link]("Access Granted");
authenticated = true;
break;
} else {
[Link]("Try Again");
}
}
if (authenticated) {
String newPassword = [Link]();
password = newPassword;
[Link]("Password Changed Successfully");
[Link]("New password: " + password);
} else {
[Link]("Maximum attempts finished.");
}
[Link]();
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Client ([Link])
import [Link].*;
import [Link].*;
public class PasswordClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 5006);
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
PrintWriter writer = new PrintWriter([Link](), true);
String[] attempts = {"wrong1", "wrong2", "admin123"};
for (String password : attempts) {
[Link](password);
String response = [Link]();
[Link]("Server: " + response);
if ([Link]("Access Granted")) {
[Link]("network456");
[Link]("Server: " + [Link]());
break;
}
}
[Link]();
} catch (IOException e) {
[Link]();
}
}

8
}

Output
Server Terminal:
New password: network456
Client Terminal:
Server: Try Again
Server: Try Again
Server: Access Granted
Server: Password Changed Successfully
Wrong Password Case:
Server: Try Again
Server: Try Again
Server: Try Again
Connection is closed after maximum 3 attempts.

9
8. TCP Server Connected to Many Clients

Question: Write a program to implement TCP Client-Server Communication (Message Passing) using Sockets
where Server can be connected to many clients and all clients will accept the same message sent by the Server.
Server ([Link])
import [Link].*;
import [Link].*;
import [Link].*;
public class MultiClientServer {
public static void main(String[] args) {
ArrayList<Socket> clients = new ArrayList<>();
try {
ServerSocket serverSocket = new ServerSocket(5007);
[Link]("Server waiting for 3 clients...");
while ([Link]() < 3) {
Socket socket = [Link]();
[Link](socket);
[Link]("Client connected: " + [Link]());
}
String message = "Notice: Lab starts at 10 AM";
for (Socket client : clients) {
PrintWriter writer = new PrintWriter([Link](), true);
[Link](message);
[Link]();
}
[Link]("Message sent to all clients.");
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Client ([Link])
import [Link].*;
import [Link].*;
public class MultiClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 5007);
BufferedReader reader = new BufferedReader(
new InputStreamReader([Link]()));
String message = [Link]();
[Link]("Message from server: " + message);
[Link]();
} catch (IOException e) {
[Link]();
}
}
}

Output
Server Terminal:
Server waiting for 3 clients...
Client connected: 54350
Client connected: 54351
Client connected: 54352
Message sent to all clients.
Client 1 Terminal:
Message from server: Notice: Lab starts at 10 AM
Client 2 Terminal:
Message from server: Notice: Lab starts at 10 AM
Client 3 Terminal:
Message from server: Notice: Lab starts at 10 AM

10

You might also like