Network Programming Assignment - 2021WA86148- CSIWZC462
Network Programming Assignment - 2021WA86148- CSIWZC462
(CSIWZC462)
1. Implementation of File Transfer Protocol
Server:
import socket
HOST = 'localhost'
PORT = 65432
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
with open(filename, 'rb') as f:
file_data = f.read()
conn.sendall(file_data)
Client
import socket
HOST = 'localhost'
PORT = 65432
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
# Define the filename to be transferred
filename = 'document.txt'
s.sendall(f'GET {filename}'.encode())
with open(filename, 'wb') as f:
while True:
data = s.recv(1024)
if not data:
break
# Write received data to the file
f.write(data)
Server:
import socket
HOST = '0.0.0.0'
PORT = 5000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = (HOST, PORT)
sock.bind(server_address)
print(f"Server listening on address {HOST}:{PORT}")
while True:
data, address = sock.recvfrom(1024)
print(f"Received message from {address}: {data.decode()}")
message = f"Hello from server!".encode()
sock.sendto(message, address)
sock.close()
Client:
import socket
HOST = 'localhost'
PORT = 5000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
3. Implementation Of Udp Client Server Communication Using Sendto and Received From
System calls.
Server:
import socket
HOST = '0.0.0.0'
PORT = 5000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = (HOST, PORT)
sock.bind(server_address)
print(f"Server listening on address {HOST}:{PORT}")
while True:
data, address = sock.recvfrom(1024)
print(f"Received message from {address}: {data.decode()}")
message = f"Hello from server!".encode()
sock.sendto(message, address)
sock.close()
Client:
import socket
HOST = 'localhost'
PORT = 5000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
import sun.misc.Signal;
import sun.misc.SignalHandler;
public class SimpleServer {
public static void main(String[] args) {
startServer();
Signal.handle(new Signal("HUP"), new SignalHandler() {
public void handle(Signal signal) {
System.out.println("Received SIGHUP signal. Restarting server...");
stopServer();
startServer();
}
});
}
private static void startServer() {
System.out.println("Server started. Press Ctrl+C to stop.");
// Your server startup code goes here
}
private static void stopServer()
{
System.out.println("Server stopped.");
}
}
Client
import java.io.*;
import java.net.*;
public class Client {
private Socket socket = null;
private DataInputStream input = null;
private DataOutputStream out = null;
public Client(String address, int port)
{
try {
socket = new Socket(address, port);
System.out.println("Connected");
input = new DataInputStream(System.in);
out = new DataOutputStream(
socket.getOutputStream());
}
catch (UnknownHostException u) {
System.out.println(u);
return;
}
catch (IOException i) {
System.out.println(i);
return;
}
String line = "";
while (!line.equals("Over")) {
try {
line = input.readLine();
out.writeUTF(line);
}
catch (IOException i) {
System.out.println(i);
}
}
try {
input.close();
out.close();
socket.close();
}
catch (IOException i) {
System.out.println(i);
}
}
public static void main(String args[])
{
Client client = new Client("127.0.0.1", 5000);
}
}
Server
import java.net.*;
import java.io.*;
public class Server
{
private Socket socket = null;
private ServerSocket server = null;
private DataInputStream in = null;
public Server(int port)
{
try
{
server = new ServerSocket(port);
System.out.println("Server started");
System.out.println("Waiting for a client ...");
socket = server.accept();
System.out.println("Client accepted");
in = new DataInputStream(
new BufferedInputStream(socket.getInputStream()));
String line = "";
while (!line.equals("Over"))
{
try
{
line = in.readUTF();
System.out.println(line);
}
catch(IOException i)
{
System.out.println(i);
}
}
System.out.println("Closing connection");
socket.close();
in.close();
}
catch(IOException i)
{
System.out.println(i);
}
}
public static void main(String args[])
{
Server server = new Server(5000);
}
}