Socket Programming
Socket Programming
Server program -
import socket
import sys
s=socket.socket()
print("Socket created")
s.bind(('localhost',12345))
s.listen(5)
print("Listening")
while True:
print("Now accepting")
c, add = s.accept()
print("The IP adress is: ",add)
c.close
print("Closed")
break
Client Program -
import socket
import sys
sy=socket.socket()
sy.connect(('localhost',12345))
sy.close()
Server program -
import socket
import sys
s = socket.socket()
print("Socket created")
s.bind(('localhost',12345))
s.listen(5)
print("Listening")
c,add = s.accept()
print("Clinet connected at: ",add)
while True:
print("Now accepting")
data = c.recv(1024)
if not data:
break
c.sendall(data)
print("The received massege is: ", data.decode())
c.close
Client program -
import socket
import sys
c=socket.socket()
c.connect(('localhost', 12345))
print("Server connected!")
while True:
massege = input().encode()
if not massege:
break
c.sendall(massege)
data = c.recv(1024)
if data.decode()=='exit':
break
print("Data received from server: ", data.decode())
Server -
import socket
import sys
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print("Socket created")
s.bind(('localhost',12345))
while True:
print("Now accepting")
data, add = s.recvfrom(1024)
if not data:
break
s.sendto(data, add)
print("The received massege is: ", data.decode())
s.close
Client -
import socket
import sys
c=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
massege = input().encode()
if not massege:
break
c.sendto(massege, ('localhost',12345)) # encode needed to transform string to
bytes
data, add = c.recvfrom(1024)
if data.decode()=='exit':
break
print("Data received from server: ", data.decode())
Assignment 11:
Multicast (Server):
import socket
group = '224.1.1.1'
port = 5004
# 2-hop restriction in network
ttl = 2
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, ttl)
message = input().encode()
sock.sendto(message, (group, port))
Multicast (Client):
import socket
import struct
MCAST_GRP = '224.1.1.1'
MCAST_PORT = 5004
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('', MCAST_PORT))
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
while True:
data = sock.recv(1024)
print(data.decode())
print(sock.recv(10240))
Assignment 12
Broadcast (Server):
import socket
Broadcast (Client):
import socket
client.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
client.bind(("", 37020))
while True:
data, addr = client.recvfrom(1024)
data = data.decode()
print("received message: %s"%data)
Assignment 13:-
Server:
import socket
from _thread import *
import threading
print_lock = threading.Lock()
def threaded(c):
while True:
data = c.recv(1024)
print(data.decode('ascii'))
if not data:
print('Bye')
#print_lock.release()
break
data = input("Enter your message: ").encode('ascii')
c.send(data)
c.close()
def Main():
host = ""
port = 12345
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
print("socket binded to port", port)
s.listen(5)
print("socket is listening")
while True:
s.listen(5)
c, addr = s.accept()
#print_lock.acquire()
print('Connected to :', addr[0], ':', addr[1])
start_new_thread(threaded, (c,))
s.close()
if __name__ == '__main__':
Main()
Client:
import socket
def Main():
host = '127.0.0.1'
port = 12345
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
while True:
message = input("Enter your message: ")
s.send(message.encode('ascii'))
data = s.recv(1024)
print('Received from the server :',str(data.decode('ascii')))
ans = input('\nDo you want to continue(y/n) :')
if ans == 'y':
continue
else:
break
s.close()
if __name__ == '__main__':
Main()