CN Lab Manual

Computer Network Pdf.

CN Lab Book







Practical No 5.

Write a program using TCP socket for wired network for Following a. Say Hello to Each other b. File transfer

Code 
 Server code:
****************
import socket

# Server configuration
HOST = '127.0.0.1'   # Localhost (you can replace with your IP)
PORT = 65432         # Port number (make sure it's free)

# Create TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen(1)

print(f"[*] Server listening on {HOST}:{PORT}")

conn, addr = server_socket.accept()
print(f"[+] Connected by {addr}")

# (a) Say Hello
client_msg = conn.recv(1024).decode()
print(f"Client says: {client_msg}")
conn.send("Hello Client, connection established!".encode())

# (b) File Transfer
filename = conn.recv(1024).decode()
print(f"[+] Receiving file: {filename}")

with open("received_" + filename, 'wb') as f:
    while True:
        data = conn.recv(1024)
        if not data:
            break
        f.write(data)

print(f"[+] File '{filename}' received successfully.")
conn.close()
server_socket.close()

********************
Client code :
import socket
import os

# Server configuration
HOST = '127.0.0.1'   # Server IP (same as server machine)
PORT = 65432

# Create TCP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))

# (a) Say Hello
client_socket.send("Hello Server!".encode())
server_msg = client_socket.recv(1024).decode()
print(f"Server says: {server_msg}")

# (b) File Transfer
filename = input("Enter file name to send: ")

if os.path.exists(filename):
    client_socket.send(filename.encode())

    with open(filename, 'rb') as f:
        data = f.read(1024)
        while data:
            client_socket.send(data)
            data = f.read(1024)
    print(f"[+] File '{filename}' sent successfully.")
else:
    print("[-] File not found.")

client_socket.close()

*******---*******

Practical 6:
Write a program using UDP Sockets to enable file transfer (Script, Text, Audio and Video one file each) between two machines.



Udp_Server.py
import socket
import os

# Server configuration
HOST = "0.0.0.0"   # Listen on all network interfaces
PORT = 12345

# Create UDP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind((HOST, PORT))

print(f"[*] UDP Server listening on port {PORT}")

# Receive filename
filename, client_addr = server_socket.recvfrom(1024)
filename = filename.decode()
print(f"[+] Receiving file: {filename} from {client_addr}")

# Acknowledge receipt of filename
server_socket.sendto("Filename received".encode(), client_addr)

# Receive file data
with open("received_" + filename, "wb") as f:
    while True:
        data, addr = server_socket.recvfrom(4096)
        if data == b"EOF":
            print(f"[+] File '{filename}' received successfully.")
            break
        f.write(data)

server_socket.close()

********************
Udp_client.py

import socket
import os

# Server configuration
SERVER_IP = "127.0.0.1"   # Change this to server’s IP address on LAN
PORT = 12345

# Create UDP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

filename = input("Enter filename to send: ")

if os.path.exists(filename):
    # Send filename
    client_socket.sendto(filename.encode(), (SERVER_IP, PORT))

    # Wait for acknowledgment
    ack, _ = client_socket.recvfrom(1024)
    print("[Server]:", ack.decode())

    # Send file data
    with open(filename, "rb") as f:
        data = f.read(4096)
        while data:
            client_socket.sendto(data, (SERVER_IP, PORT))
            data = f.read(4096)

    # Send end-of-file marker
    client_socket.sendto(b"EOF", (SERVER_IP, PORT))
    print(f"[+] File '{filename}' sent successfully.")
else:
    print("[-] File not found.")

client_socket.close()


*************




*************










Comments

Popular posts from this blog

SL-1 lab practical

OOPs practical codes