Assignment1point2 Socket Programming
Assignment1point2 Socket Programming
Socket Programming
Sockets [1,2.1]
§ a process sends/receives messages to/from a software interface
called a socket
§ also called Application Programming Interface (API) between a
network application and the network
§ analogous to sending parcels through a transport service
§ the parcel becomes the responsibility of the transport service
§ we have almost no control over how the transport service operates
application application
socket controlled by
process process app developer
transport transport
network network controlled
link
by OS
link Internet
physical physical
transport transport
network network controlled
link
by OS
link Internet
physical physical
transport transport
network network controlled
link by OS
link Internet
physical physical
write reply to
serverSocket read datagram from
specifying clientSocket
client address,
port number close
clientSocket
Transport Layer: 3-9
Example app: UDP server [1,2.7]
Python UDPServer
from socket import *
serverPort = 12000
create UDP socket serverSocket = socket(AF_INET, SOCK_DGRAM)
bind socket to local port number 12000 serverSocket.bind(('', serverPort))
print (“The server is ready to receive”)
loop forever while True:
Read from UDP socket into message, getting message, clientAddress = serverSocket.recvfrom(2048)
client’s address (client IP and port)
modifiedMessage = message.decode().upper()
send upper case string back to this client serverSocket.sendto(modifiedMessage.encode(),
clientAddress)
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
Transport Layer: 3-13
Example app: TCP server [1,2.7]
Python TCPServer
from socket import *
serverPort = 12000
create TCP welcoming socket serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((‘’,serverPort))
server begins listening for
incoming TCP requests
serverSocket.listen(1)
print ‘The server is ready to receive’
loop forever while True:
server waits on accept() for incoming connectionSocket, addr = serverSocket.accept()
requests, new socket created on return