Python3 网络编程

小白也能懂的Python3网络编程指南

Python3 网络编程知识点汇总

编程小白也能懂的通俗解释 | 基础概念 + 代码示例 + 实践应用

🌐

📡 核心网络概念

  • IP地址 – 设备的”门牌号”(如 192.168.1.1)
  • 端口(Port) – 程序的”具体房间号”(0-65535)
  • 协议(Protocol) – 通信的”语言规则”
    • TCP – 可靠传输(像打电话)
    • UDP – 快速传输(像发短信)
  • Socket – 网络的”电话插座”,编程的核心接口
  • HTTP/HTTPS – 浏览网页的协议

🔌 Socket编程基础

  • 创建Socket – 建立通信端点
    创建TCP Socket
    import socket
                                
    # 创建TCP Socket
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # 创建UDP Socket
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  • 绑定地址 – 告诉系统使用哪个IP和端口
  • 监听连接 (服务器端)
  • 连接服务器 (客户端)
  • 发送/接收数据 – send()/recv()方法
  • 关闭连接 – close()方法

📞 TCP编程

  • 面向连接、可靠的数据传输
  • 服务器端流程:
    1. 创建socket
    2. 绑定(bind)地址和端口
    3. 监听(listen)连接
    4. 接受(accept)客户端连接
    5. 收发(recv/send)数据
    6. 关闭(close)连接
  • 客户端流程:
    1. 创建socket
    2. 连接(connect)服务器
    3. 收发数据
    4. 关闭连接
  • TCP服务器示例片段
    # 创建服务器socket
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind(('0.0.0.0', 8888))
    server.listen(5)
    # 接受客户端连接
    client, addr = server.accept()
    data = client.recv(1024)  # 接收数据
    client.send("Hello Client!".encode())

📨 UDP编程

  • 无连接、快速但不保证到达
  • 适用于实时性要求高的场景(视频通话、游戏)
  • 服务器端流程:
    1. 创建socket
    2. 绑定地址和端口
    3. 接收数据(recvfrom)
    4. 发送数据(sendto)
  • 客户端流程:
    1. 创建socket
    2. 发送数据(sendto)
    3. 接收数据(recvfrom)
  • UDP发送数据示例
    import socket
    
    # 创建UDP Socket
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
    # 发送数据到指定地址和端口
    udp_socket.sendto("Hello UDP!".encode(), ('192.168.1.100', 8888))
    
    # 接收数据
    data, addr = udp_socket.recvfrom(1024)

🌐 HTTP编程

  • requests库 – 最常用的HTTP客户端库
  • http.server – 创建简单HTTP服务器
  • 常用操作:
    • GET – 获取资源
    • POST – 提交数据
    • PUT – 更新资源
    • DELETE – 删除资源
  • 使用requests发送GET请求
    import requests
    
    # 发送GET请求
    response = requests.get('https://api.example.com/data')
    
    # 检查状态码
    if response.status_code == 200:
        # 打印返回内容
        print(response.text)
    else:
        print('请求失败,状态码:', response.status_code)
  • 处理JSON数据: response.json()

🧰 实用模块

  • socket – 底层网络通信
  • socketserver – 创建网络服务器框架
  • asyncio – 异步网络编程
  • http.client – 底层HTTP客户端
  • urllib.request – 处理HTTP请求
  • requests – 人性化的HTTP库(推荐)
  • json – 处理JSON数据
创建简单HTTP服务器
import http.server
import socketserver

PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("服务器启动,端口:", PORT)
    httpd.serve_forever()

网络通信流程图

客户端
➡️
路由器
➡️
服务器

客户端发送请求 → 经过网络路由 → 到达服务器处理 → 返回响应

TCP通信需要先建立连接,UDP直接发送数据包

💡 提示:网络编程核心是理解”请求-响应”模型,多动手实践小项目

Python网络编程易学易用,是进入互联网开发领域的绝佳起点!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部