CN Lab Manual
Computer Network Pdf.
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
Post a Comment