发布于2026-07-04 阅读(0)
扫一扫,手机访问
在Ubuntu上进行Python网络编程,最直接的方式就是使用Python内置的socket模块。它提供了底层的网络接口,无论是搭建一个简单的TCP服务器还是编写客户端,都能轻松搞定。可以说,socket是网络编程的基石,理解了它,后续学习更高级的框架也会顺手很多。

下面通过一个具体的例子,看看在Ubuntu上如何用socket库实现一个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()
# 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),否则客户端永远找不到目标。socket模块虽然也能实现,但代码会变得相当繁琐。这时候可以考虑asyncio、Twisted或Tornado这类更高级的库,它们封装好了事件循环和协议处理,能省不少心力。另外,如果涉及HTTP层面的网络编程,Python自带的http.server模块可以快速搭一个简易Web服务器,而第三方库如Flask和Django则是构建生产级Web应用的主流选择。不过,不管上层框架多花哨,底层socket的原理始终是绕不开的基础——理解了TCP通信的细节,你对整个网络编程的理解才会真正扎实。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8