Python在Ubuntu上的网络编程
在Ubuntu上利用Python内置socket模块可搭建TCP服务器与客户端,实现创建套接字、绑定地址、监听、接受连接及收发数据等核心操作。需注意防火墙放行端口,跨机通信须使用实际IP地址。掌握socket是理解更高级网络框架的基础。
在Ubuntu上进行Python网络编程,最直接的方式就是使用Python内置的socket模块。它提供了底层的网络接口,无论是搭建一个简单的TCP服务器还是编写客户端,都能轻松搞定。可以说,socket是网络编程的基石,理解了它,后续学习更高级的框架也会顺手很多。

下面通过一个具体的例子,看看在Ubuntu上如何用socket库实现一个TCP服务器和客户端之间的通信。代码不长,但涵盖了网络编程最核心的几个环节:创建套接字、绑定地址、监听、接受连接、收发数据。
TCP服务器
# server.py
import socket
# 创建一个socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_host = '127.0.0.1'
server_port = 12345
server_socket.bind((server_host, server_port))
# 监听连接
server_socket.listen(5)
print(f"[*] Listening on {server_host}:{server_port}")
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print(f"[+] Connection from {client_address}")
# 接收数据
data = client_socket.recv(1024)
print(f"[+] Received: {data.decode()}")
# 发送数据
client_socket.sendall(b"ACK!")
# 关闭客户端连接
client_socket.close()
TCP客户端
# client.py
import socket
# 创建一个socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
server_host = '127.0.0.1'
server_port = 12345
client_socket.connect((server_host, server_port))
# 发送数据
message = "Hello, Server!"
client_socket.sendall(message.encode())
# 接收响应
response = client_socket.recv(1024)
print(f"[+] Received: {response.decode()}")
# 关闭连接
client_socket.close()
运行示例
- 在终端中运行服务器脚本:
python3 server.py
- 打开另一个终端窗口,运行客户端脚本:
python3 client.py
不出意外的话,你会看到服务器端打印出客户端的连接信息,并收到来自客户端的问候;客户端也会收到服务器返回的"ACK!"。一次简单的TCP握手就此完成。
注意事项
- 防火墙设置至关重要。记得确保系统防火墙允许应用程序使用你指定的端口,否则连接很可能被直接拦截。
- 如果你在本地网络(比如同一台机器的两个终端)测试,用
127.0.0.1没问题。但如果是跨机器通信,记得把server_host改成服务器的实际IP地址(比如局域网内的192.168.x.x),否则客户端永远找不到目标。 - 更复杂的场景下,比如需要处理大量并发连接,或者想要异步非阻塞I/O,
socket模块虽然也能实现,但代码会变得相当繁琐。这时候可以考虑asyncio、Twisted或Tornado这类更高级的库,它们封装好了事件循环和协议处理,能省不少心力。
另外,如果涉及HTTP层面的网络编程,Python自带的http.server模块可以快速搭一个简易Web服务器,而第三方库如Flask和Django则是构建生产级Web应用的主流选择。不过,不管上层框架多花哨,底层socket的原理始终是绕不开的基础——理解了TCP通信的细节,你对整个网络编程的理解才会真正扎实。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,













