0% found this document useful (0 votes)
3 views19 pages

Java Socket Programming Answers

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)
3 views19 pages

Java Socket Programming Answers

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]();
}
}
}

1
1. TCP Client-Server Communication (Message Passing) - 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!

3
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]();
}
}
}

4
2. UDP Client-Server Communication (Message Passing) - 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!

6
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]();
}
}
}

7
3. TCP Client-Server Communication (File Passing) - 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.

8
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]();

9
}
}
}

10
4. TCP Plain Text Sent and Cipher Text Received - Output

Server Terminal:
Plain text sent: HELLO CLIENT

Client Terminal:
Plain text received: HELLO CLIENT
Cipher text: KHOOR FOLHQW

11
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]();
}
}
}

12
5. TCP Message Passing with Particular String Length - Output

Server Terminal:
Message sent: Computer Networking Laboratory

Client Terminal:
Complete message: Computer Networking Laboratory
Required length: 8
Part received: Computer

13
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);

14
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) {
[Link](buffer, 0, bytesRead);
}
[Link]();
[Link]("Downloaded: downloaded_" + selectedFile);
} else {
[Link]("Selected file not found.");
}

[Link]();
} catch (IOException e) {
[Link]();
}
}
}

15
6. TCP File Passing with File Selection - 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

16
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(

17
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]();
}
}
}

18
7. TCP Password Authentication with Three Attempts - 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.

19
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]();
}
}
}

20
8. TCP Server Connected to Many Clients - 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

21

You might also like