Python - Network Programming
Network programming is one of the most powerful features of Python. It allows different computers to communicate with each other over a network such as the internet or a local system.
With Python, you can build:
- Web servers
- Client-server applications
- Chat systems
- File transfer tools
- APIs and network services
In this tutorial, you will learn the basics of network programming in Python using sockets, along with practical examples.
What is Network Programming?
Network programming is:
The process of enabling communication between two or more devices over a network using protocols like TCP or UDP.
Key Concepts in Networking
Before coding, understand these basics:
- IP Address: Identifies a device on a network
- Port: A communication endpoint
- Protocol: Rules for communication (TCP/UDP)
- Socket: Endpoint for sending/receiving data
What is a Socket?
A socket is:
An endpoint used to send and receive data between devices.
Python provides socket programming through the socket module.
Importing Socket Module
import socketTypes of Sockets
1. TCP Socket (Reliable)
- Connection-based
- Data is guaranteed to arrive
2. UDP Socket (Fast)
- Connectionless
- Faster but less reliable
TCP Client-Server Example
Server Side Code
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("localhost", 8080))
server.listen(1)
print("Server is waiting for connection...")
conn, addr = server.accept()
print("Connected by", addr)
message = conn.recv(1024).decode()
print("Received:", message)
conn.send("Hello from server".encode())
conn.close()
server.close()Client Side Code
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("localhost", 8080))
client.send("Hello Server".encode())
response = client.recv(1024).decode()
print("Server response:", response)
client.close()How It Works
- Server starts and listens on a port
- Client connects to server
- Data is exchanged
- Connection closes
Output Example
Server:
Server is waiting for connection...
Connected by ('127.0.0.1', 54321)
Received: Hello ServerClient:
Server response: Hello from serverUDP Socket Example
UDP Server
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server.bind(("localhost", 8081))
print("UDP Server ready")
data, addr = server.recvfrom(1024)
print("Received:", data.decode())
server.sendto("Hello UDP Client".encode(), addr)UDP Client
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client.sendto("Hello UDP Server".encode(), ("localhost", 8081))
data, addr = client.recvfrom(1024)
print("Server:", data.decode())
client.close()TCP vs UDP Comparison
| Feature | TCP | UDP |
|---|---|---|
| Reliability | High | Low |
| Speed | Slower | Faster |
| Connection | Required | Not required |
| Use Case | Web, email | Gaming, streaming |
Common Socket Methods
Server Methods
bind()→ Attach to addresslisten()→ Wait for connectionsaccept()→ Accept client
Client Methods
connect()→ Connect to serversend()→ Send datarecv()→ Receive data
Real-World Applications
Network programming is used in:
- Web servers (HTTP/HTTPS)
- Chat applications
- Online games
- File sharing systems
- APIs and microservices
Example: Simple Chat System
# Basic idea: multiple clients send messages to server(Used in advanced socket programming systems)
Advantages of Network Programming
- Enables communication between systems
- Supports distributed applications
- Scalable architecture
- Real-time data exchange
Challenges
- Network latency
- Security risks
- Connection failures
- Data synchronization issues
Best Practices
1. Always close sockets
socket.close()2. Handle exceptions
try:
pass
except Exception as e:
print(e)3. Use proper buffer size
recv(1024)4. Secure communication (TLS/SSL)
Common Mistakes
1. Forgetting to close connection
2. Blocking server without timeout
3. Not handling errors
Summary
Python network programming allows applications to communicate over a network using sockets. With TCP and UDP protocols, developers can build scalable and real-time systems such as servers, chat apps, and APIs.
Key Takeaways
- Socket is the core of network programming
- TCP is reliable, UDP is fast
- Server-client model is commonly used
- Python provides easy socket API
- Essential for distributed systems
Mastering network programming is a key step toward building real-world Python applications like web services and communication systems.


0 Comments