Debian系统通常预装Python 3,可通过以下命令检查版本:
python3 --version
若未安装或需升级,执行以下命令安装最新版Python 3及pip(Python包管理工具):
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip -y
Nano、Vim)或集成开发环境(如Visual Studio Code、PyCharm Community版),提升代码编写效率。python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活虚拟环境(Linux/macOS)
Python标准库中的socket模块支持TCP/UDP通信,无需额外安装。以下是常见示例:
import socket
# 创建TCP套接字(IPv4+流式协议)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP和端口(0.0.0.0表示监听所有网络接口)
server_socket.bind(('0.0.0.0', 12345))
# 开始监听(最多允许5个客户端排队)
server_socket.listen(5)
print("TCP Server listening on 0.0.0.0:12345")
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print(f"Connection from {client_address}")
try:
# 接收数据(最多1024字节)
data = client_socket.recv(1024)
print(f"Received: {data.decode('utf-8')}")
# 发送响应
client_socket.sendall(b"Hello from TCP Server!")
finally:
# 关闭客户端连接
client_socket.close()
import socket
# 创建TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器(替换为服务器实际IP)
client_socket.connect(('127.0.0.1', 12345))
try:
# 发送数据
message = "Hello from TCP Client!"
client_socket.sendall(message.encode('utf-8'))
# 接收响应
data = client_socket.recv(1024)
print(f"Received: {data.decode('utf-8')}")
finally:
# 关闭连接
client_socket.close()
import socket
# 创建UDP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(('0.0.0.0', 12345))
print("UDP Server listening on 0.0.0.0:12345")
while True:
# 接收数据(含客户端地址)
data, client_address = server_socket.recvfrom(1024)
print(f"Received from {client_address}: {data.decode('utf-8')}")
# 发送响应
server_socket.sendto(b"Hello from UDP Server!", client_address)
import socket
# 创建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据到服务器
message = "Hello from UDP Client!"
client_socket.sendto(message.encode('utf-8'), ('127.0.0.1', 12345))
# 接收响应
data, server_address = client_socket.recvfrom(1024)
print(f"Received from {server_address}: {data.decode('utf-8')}")
# 关闭套接字
client_socket.close()
python3 server.py)。python3 client.py),观察控制台输出是否显示数据收发成功。netcat(nc)替代客户端测试服务器,例如:echo "Test Message" | nc 127.0.0.1 12345 # 测试TCP服务器
echo "Test Message" | nc -u 127.0.0.1 12345 # 测试UDP服务器
OSError: [Errno 98] Address already in use,需修改端口或设置SO_REUSEADDR选项(在bind前添加server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1))。sudo ufw allow 12345/tcp)。对于Web应用或复杂网络服务,可使用以下框架简化开发:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello from Flask!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
pip install gunicorn && gunicorn -w 4 -b 127.0.0.1:8000 app:app)。通过以上步骤,即可在Debian系统上完成Python网络编程的基础开发与部署。根据实际需求,可进一步学习并发编程(如threading、asyncio)、SSL/TLS加密通信等高级主题。