socket
The Python socket
module provides a low-level networking interface that allows you to create and use sockets for network communication.
It enables Python programs to connect to other computers over a network, send and receive data, and handle network-related tasks like client-server communication.
Here’s a quick example:
>>> import socket
>>> with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
... s.connect(("www.example.com", 80))
...
Key Features
Frequently Used Classes and Functions
Object | Type | Description |
---|---|---|
socket.socket() |
Class | Represents a network socket |
socket.gethostbyname() |
Function | Resolves a hostname to an IP address |
socket.bind() |
Method | Binds a socket to a local address |
socket.listen() |
Method | Enables a socket to accept incoming connections |
socket.accept() |
Method | Accepts a connection from a client |
socket.recv() |
Method | Receives data from a connected socket |
socket.send() |
Method | Sends data to a connected socket |
socket.close() |
Method | Closes the socket |
Examples
Creating a TCP/IP socket:
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Connecting to a server:
>>> s.connect(("www.example.com", 80))
Common Use Cases
- Creating client-server applications
- Implementing network protocols
- Sending and receiving data over TCP/IP and UDP
- Building web servers or clients
- Developing chat applications
Real-World Example
Here’s how to create a TCP server that listens for incoming connections and sends a welcome message to the client:
server.py
import socket
import threading
def handle_client(conn, addr):
with conn:
print(f"Connected by {addr}")
conn.sendall(b"Welcome to the server!")
def main():
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind(("localhost", 12345))
s.listen()
print("Server listening on port 12345...")
while True:
conn, addr = s.accept()
thread = threading.Thread(
target=handle_client, args=(conn, addr), daemon=True
)
thread.start()
if __name__ == "__main__":
main()
In this example, you use the socket
module to create a server that listens on a specified port and sends a welcome message to each client that connects. To try it out, run the script on your computer. You’ll get a message telling you that the server is listening on port 12345. Then, run the following command:
$ nc localhost 12345
Welcome to the server!
Related Resources
Tutorial
Socket Programming in Python (Guide)
In this in-depth tutorial, you'll learn how to build a socket server and client with Python. By the end of this tutorial, you'll understand how to use the main functions and methods in Python's socket module to write your own networked client-server applications.
For additional information on related topics, take a look at the following resources:
- How to Launch an HTTP Server in One Line of Python Code (Tutorial)
- Programming Sockets in Python (Course)
- Socket Programming in Python (Quiz)
By Leodanis Pozo Ramos • Updated July 17, 2025