SlideShare a Scribd company logo
Networking in Python
Networking in Python2025 (programs allll)
Important method for socket programming
Application Layer 2-4
Socket programming
goal: learn how to build client/server applications that
communicate using sockets
socket: dropbox between application process and end-end-
transport protocol
Internet
controlled
by OS
controlled by
app developer
transport
application
physical
link
network
process
transport
application
physical
link
network
process
socket
Application Layer 2-5
Socket programming
Two socket types for two transport services:
– UDP: unreliable datagram
– TCP: reliable, byte stream-oriented
Application Example:
1. Client reads a line of characters (data) from its
keyboard and sends the data to the server.
2. The server receives the data and converts
characters to uppercase.
3. The server sends the modified data to the client.
4. The client receives the modified data and displays
the line on its screen.
Application Layer 2-6
Socket programming with UDP
UDP: no “connection” between client & server
• no handshaking before sending data
• sender explicitly attaches IP destination address and port # to
each packet
• rcvr extracts sender IP address and port# from received
packet
UDP: transmitted data may be lost or received
out-of-order
Application viewpoint:
• UDP provides unreliable transfer of groups of bytes
(“datagrams”) between client and server
Client/server socket interaction: UDP
close
clientSocket
read datagram from
clientSocket
create socket:
clientSocket =
DatagramSocket()
Create datagram with server IP and
port=x; send datagram via
clientSocket
create socket, port= x:
serverSocket =
DatagramSocket(x)
read datagram from
serverSocket
write reply to
serverSocket
specifying
client address,
port number
Application 2-7
server (running on serverIP) client
Application Layer 2-8
import java.io.*;
import java.net.*;
class UDPClient {
public static void main(String args[]) throws Exception
{
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("hostname");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
create
input stream
create
client socket
translate
hostname to IP
addr using DNS
Example: Java client (UDP)
Application Layer 2-9
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length,
IPAddress, 9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence =
new String(receivePacket.getData());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
}
create datagram with
data-to-send,
length, IP addr, port
send datagram
to server
read datagram
from server
Example: Java client (UDP)
Application Layer 2-10
import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
create
datagram socket
at port 9876
create space for
received datagram
receive
datagram
Example: Java server (UDP)
Application Layer 2-11
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
port);
serverSocket.send(sendPacket);
}
}
}
get IP addr
port #, of
sender
write out
datagram
to socket
end of while loop,
loop back and wait for
another datagram
create datagram
to send to client
Example: Java server (UDP)
Application Layer 2-12
Example app: UDP client
import socket
serverName = ‘hostname’
serverPort = 12000
clientSocket = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
message = raw_input(’Input lowercase sentence:’)
clientSocket.sendto(message,(serverName, serverPort))
modifiedMessage, serverAddress =
clientSocket.recvfrom(2048)
print modifiedMessage
clientSocket.close()
Python UDPClient
include Python’s socket
library
create UDP socket for server
get user keyboard
input
Attach server name, port to
message; send into socket
print out received string and
close socket
read reply characters from
socket into string
Application Layer 2-13
Example app: UDP server
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('', serverPort))
print “The server is ready to receive”
while 1:
message, clientAddress = serverSocket.recvfrom(2048)
modifiedMessage = message.upper()
serverSocket.sendto(modifiedMessage, clientAddress)
Python UDPServer
create UDP socket
bind socket to local port
number 12000
loop forever
Read from UDP socket into
message, getting client’s
address (client IP and port)
send upper case string back
to this client
Application Layer 2-14
Socket programming with TCP
client must contact server
• server must be first running
• server must have created
socket (dropbox) that
welcomes client’s contact
client connects to server by:
• creating TCP socket,
specifying IP address, port
number of server process
• client socket is now bound
to that specific server
• server accepts connect by:
– creating new connection-
specific socket
– allows server to talk with
multiple clients
application viewpoint:
TCP provides reliable, in-order
byte-stream transfer (“pipe”)
between client and server
Application Layer 2-15
Client/server socket interaction: TCP
wait for incoming
connection request
connectionSocket =
serverSocket.accept()
create socket,
port=x, for incoming request:
serverSocket = ServerSocket()
create socket,
connect to hostid, port=x
clientSocket = socket()
server (running on hostid) client
send request using
clientSocket
read request from
connectionSocket
write reply to
connectionSocket
TCP
connection setup
close
connectionSocket
read reply from
clientSocket
close
clientSocket
Application Layer 2-16
Example: Java client (TCP)
import java.io.*;
import java.net.*;
class TCPClient {
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("hostname", 6789);
DataOutputStream outToServer =
new DataOutputStream(clientSocket.getOutputStream());
create
input stream
create
clientSocket object
of type Socket,
connect to server
create
output stream
attached to socket
this package defines Socket()
and ServerSocket() classes
server port #
server name,
e.g., www.umass.edu
Application Layer 2-17
BufferedReader inFromServer =
new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + 'n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);
clientSocket.close();
}
}
create
input stream
attached to socket
send line
to server
read line
from server
close socket
(clean up behind yourself!)
Example: Java client (TCP)
Application Layer 2-18
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new
InputStreamReader(connectionSocket.getInputStream()));
wait, on welcoming
socket accept() method
for client contact create,
new socket on return
create
welcoming socket
at port 6789
create input
stream, attached
to socket
Example: Java server (TCP)
Application Layer 2-19
DataOutputStream outToClient =
new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
capitalizedSentence = clientSentence.toUpperCase() + 'n';
outToClient.writeBytes(capitalizedSentence);
}
}
}
read in line
from socket
create output
stream, attached
to socket
write out line
to socket
end of while loop,
loop back and wait for
another client connection
Example: Java server (TCP)
Application Layer 2-20
Example app:TCP client
import socket
serverName = ‘servername’
serverPort = 12000
clientSocket = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence = raw_input(‘Input lowercase sentence:’)
clientSocket.send(sentence)
modifiedSentence = clientSocket.recv(1024)
print ‘From Server:’, modifiedSentence
clientSocket.close()
Python TCPClient
create TCP socket for server,
remote port 12000
No need to attach server
name, port
Application Layer 2-21
Example app:TCP server
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((‘’,serverPort))
serverSocket.listen(1)
print ‘The server is ready to receive’
while 1:
connectionSocket, addr = serverSocket.accept()
sentence = connectionSocket.recv(1024)
capitalizedSentence = sentence.upper()
connectionSocket.send(capitalizedSentence)
connectionSocket.close()
Python TCPServer
create TCP welcoming
socket
server begins listening for
incoming TCP requests
loop forever
server waits on accept()
for incoming requests, new
socket created on return
read bytes from socket (but
not address as in UDP)
close connection to this client
(but not welcoming socket)
A python program to know ip address of the
website
Networking in Python2025 (programs allll)
Networking in Python2025 (programs allll)
Networking in Python2025 (programs allll)
Socket Programming
Networking in Python2025 (programs allll)
Networking in Python2025 (programs allll)
Networking in Python2025 (programs allll)
Networking in Python2025 (programs allll)
Networking in Python2025 (programs allll)
Networking in Python2025 (programs allll)
Networking in Python2025 (programs allll)

More Related Content

PPT
Socket Programming_theory.ppt
PPTX
Basics of Socket Programming using python
PPT
Chapter_2_part5.ppt in the department of computer science
PPT
Socket programming
PPT
Socket programming-tutorial-sk
PPTX
EN-04 (1).pptx
PDF
JavaSockets-Session10 New York university.pdf
Socket Programming_theory.ppt
Basics of Socket Programming using python
Chapter_2_part5.ppt in the department of computer science
Socket programming
Socket programming-tutorial-sk
EN-04 (1).pptx
JavaSockets-Session10 New York university.pdf

Similar to Networking in Python2025 (programs allll) (20)

PPTX
#1 (TCPvs. UDP)
PDF
Socket programming using java
PPT
Socket Programming in Java.ppt yeh haii
PPT
Pemrograman Jaringan
PDF
PPT
PPT
Chapter 4 slides
PPTX
Socket Programming
PDF
Socket Programming using Java
PDF
28 networking
PDF
How a network connection is created A network connection is initi.pdf
PPT
Sockets
PPT
Socket Programming Tutorial
PPT
Socket Programming Tutorial 1227317798640739 8
PDF
Socket programming assignment
PPTX
Chuong5_Networking_updated.Networking_updatedpptx
PPT
Application Layer and Socket Programming
PPTX
Socket programming
PPT
Socket programming in C
PPTX
Network Programming-Python-13-8-2023.pptx
#1 (TCPvs. UDP)
Socket programming using java
Socket Programming in Java.ppt yeh haii
Pemrograman Jaringan
Chapter 4 slides
Socket Programming
Socket Programming using Java
28 networking
How a network connection is created A network connection is initi.pdf
Sockets
Socket Programming Tutorial
Socket Programming Tutorial 1227317798640739 8
Socket programming assignment
Chuong5_Networking_updated.Networking_updatedpptx
Application Layer and Socket Programming
Socket programming
Socket programming in C
Network Programming-Python-13-8-2023.pptx
Ad

More from PriyankaPatil919748 (10)

PDF
Data Mining and Warehousing presentation
PDF
ch_9_data Mining and warehousing thirdpdf
PPTX
Digitalsignature&protocol Cryptographycss
PPTX
Apriori Examplein data warehouse &mining.pptx
PPT
ch_1_dm data preprocessing in data mining
PPT
2D_Transformations in computer graphicsCG
PPTX
Aliasing and Antialiasing techniques CGVR
PDF
ch_5_dm clustering in data mining.......
PPTX
cgvr ppt key frame animation computer .
PPT
DBSecurity-Overview database securityPPT
Data Mining and Warehousing presentation
ch_9_data Mining and warehousing thirdpdf
Digitalsignature&protocol Cryptographycss
Apriori Examplein data warehouse &mining.pptx
ch_1_dm data preprocessing in data mining
2D_Transformations in computer graphicsCG
Aliasing and Antialiasing techniques CGVR
ch_5_dm clustering in data mining.......
cgvr ppt key frame animation computer .
DBSecurity-Overview database securityPPT
Ad

Recently uploaded (20)

PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
PDF
Transforming Manufacturing operations through Intelligent Integrations
PDF
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
PDF
DevOps & Developer Experience Summer BBQ
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
PPTX
ChatGPT's Deck on The Enduring Legacy of Fax Machines
PDF
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
PDF
Software Development Methodologies in 2025
PPTX
ABU RAUP TUGAS TIK kelas 8 hjhgjhgg.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
SparkLabs Primer on Artificial Intelligence 2025
PDF
Reimagining Insurance: Connected Data for Confident Decisions.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
madgavkar20181017ppt McKinsey Presentation.pdf
PPTX
How Much Does It Cost to Build a Train Ticket App like Trenitalia in Italy.pptx
PDF
Dell Pro 14 Plus: Be better prepared for what’s coming
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
A Day in the Life of Location Data - Turning Where into How.pdf
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Transforming Manufacturing operations through Intelligent Integrations
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
DevOps & Developer Experience Summer BBQ
NewMind AI Weekly Chronicles - August'25 Week I
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
ChatGPT's Deck on The Enduring Legacy of Fax Machines
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
Software Development Methodologies in 2025
ABU RAUP TUGAS TIK kelas 8 hjhgjhgg.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
SparkLabs Primer on Artificial Intelligence 2025
Reimagining Insurance: Connected Data for Confident Decisions.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
madgavkar20181017ppt McKinsey Presentation.pdf
How Much Does It Cost to Build a Train Ticket App like Trenitalia in Italy.pptx
Dell Pro 14 Plus: Be better prepared for what’s coming

Networking in Python2025 (programs allll)

  • 3. Important method for socket programming
  • 4. Application Layer 2-4 Socket programming goal: learn how to build client/server applications that communicate using sockets socket: dropbox between application process and end-end- transport protocol Internet controlled by OS controlled by app developer transport application physical link network process transport application physical link network process socket
  • 5. Application Layer 2-5 Socket programming Two socket types for two transport services: – UDP: unreliable datagram – TCP: reliable, byte stream-oriented Application Example: 1. Client reads a line of characters (data) from its keyboard and sends the data to the server. 2. The server receives the data and converts characters to uppercase. 3. The server sends the modified data to the client. 4. The client receives the modified data and displays the line on its screen.
  • 6. Application Layer 2-6 Socket programming with UDP UDP: no “connection” between client & server • no handshaking before sending data • sender explicitly attaches IP destination address and port # to each packet • rcvr extracts sender IP address and port# from received packet UDP: transmitted data may be lost or received out-of-order Application viewpoint: • UDP provides unreliable transfer of groups of bytes (“datagrams”) between client and server
  • 7. Client/server socket interaction: UDP close clientSocket read datagram from clientSocket create socket: clientSocket = DatagramSocket() Create datagram with server IP and port=x; send datagram via clientSocket create socket, port= x: serverSocket = DatagramSocket(x) read datagram from serverSocket write reply to serverSocket specifying client address, port number Application 2-7 server (running on serverIP) client
  • 8. Application Layer 2-8 import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("hostname"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); create input stream create client socket translate hostname to IP addr using DNS Example: Java client (UDP)
  • 9. Application Layer 2-9 DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } } create datagram with data-to-send, length, IP addr, port send datagram to server read datagram from server Example: Java client (UDP)
  • 10. Application Layer 2-10 import java.io.*; import java.net.*; class UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket); create datagram socket at port 9876 create space for received datagram receive datagram Example: Java server (UDP)
  • 11. Application Layer 2-11 String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket); } } } get IP addr port #, of sender write out datagram to socket end of while loop, loop back and wait for another datagram create datagram to send to client Example: Java server (UDP)
  • 12. Application Layer 2-12 Example app: UDP client import socket serverName = ‘hostname’ serverPort = 12000 clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) message = raw_input(’Input lowercase sentence:’) clientSocket.sendto(message,(serverName, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print modifiedMessage clientSocket.close() Python UDPClient include Python’s socket library create UDP socket for server get user keyboard input Attach server name, port to message; send into socket print out received string and close socket read reply characters from socket into string
  • 13. Application Layer 2-13 Example app: UDP server from socket import * serverPort = 12000 serverSocket = socket(AF_INET, SOCK_DGRAM) serverSocket.bind(('', serverPort)) print “The server is ready to receive” while 1: message, clientAddress = serverSocket.recvfrom(2048) modifiedMessage = message.upper() serverSocket.sendto(modifiedMessage, clientAddress) Python UDPServer create UDP socket bind socket to local port number 12000 loop forever Read from UDP socket into message, getting client’s address (client IP and port) send upper case string back to this client
  • 14. Application Layer 2-14 Socket programming with TCP client must contact server • server must be first running • server must have created socket (dropbox) that welcomes client’s contact client connects to server by: • creating TCP socket, specifying IP address, port number of server process • client socket is now bound to that specific server • server accepts connect by: – creating new connection- specific socket – allows server to talk with multiple clients application viewpoint: TCP provides reliable, in-order byte-stream transfer (“pipe”) between client and server
  • 15. Application Layer 2-15 Client/server socket interaction: TCP wait for incoming connection request connectionSocket = serverSocket.accept() create socket, port=x, for incoming request: serverSocket = ServerSocket() create socket, connect to hostid, port=x clientSocket = socket() server (running on hostid) client send request using clientSocket read request from connectionSocket write reply to connectionSocket TCP connection setup close connectionSocket read reply from clientSocket close clientSocket
  • 16. Application Layer 2-16 Example: Java client (TCP) import java.io.*; import java.net.*; class TCPClient { public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence; BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); Socket clientSocket = new Socket("hostname", 6789); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); create input stream create clientSocket object of type Socket, connect to server create output stream attached to socket this package defines Socket() and ServerSocket() classes server port # server name, e.g., www.umass.edu
  • 17. Application Layer 2-17 BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); sentence = inFromUser.readLine(); outToServer.writeBytes(sentence + 'n'); modifiedSentence = inFromServer.readLine(); System.out.println("FROM SERVER: " + modifiedSentence); clientSocket.close(); } } create input stream attached to socket send line to server read line from server close socket (clean up behind yourself!) Example: Java client (TCP)
  • 18. Application Layer 2-18 import java.io.*; import java.net.*; class TCPServer { public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket(6789); while(true) { Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); wait, on welcoming socket accept() method for client contact create, new socket on return create welcoming socket at port 6789 create input stream, attached to socket Example: Java server (TCP)
  • 19. Application Layer 2-19 DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); capitalizedSentence = clientSentence.toUpperCase() + 'n'; outToClient.writeBytes(capitalizedSentence); } } } read in line from socket create output stream, attached to socket write out line to socket end of while loop, loop back and wait for another client connection Example: Java server (TCP)
  • 20. Application Layer 2-20 Example app:TCP client import socket serverName = ‘servername’ serverPort = 12000 clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) clientSocket.connect((serverName,serverPort)) sentence = raw_input(‘Input lowercase sentence:’) clientSocket.send(sentence) modifiedSentence = clientSocket.recv(1024) print ‘From Server:’, modifiedSentence clientSocket.close() Python TCPClient create TCP socket for server, remote port 12000 No need to attach server name, port
  • 21. Application Layer 2-21 Example app:TCP server from socket import * serverPort = 12000 serverSocket = socket(AF_INET,SOCK_STREAM) serverSocket.bind((‘’,serverPort)) serverSocket.listen(1) print ‘The server is ready to receive’ while 1: connectionSocket, addr = serverSocket.accept() sentence = connectionSocket.recv(1024) capitalizedSentence = sentence.upper() connectionSocket.send(capitalizedSentence) connectionSocket.close() Python TCPServer create TCP welcoming socket server begins listening for incoming TCP requests loop forever server waits on accept() for incoming requests, new socket created on return read bytes from socket (but not address as in UDP) close connection to this client (but not welcoming socket)
  • 22. A python program to know ip address of the website