Python TCP Socket编程实战:客户端与服务端实现详解

听雨眠
听雨眠
发布时间:2026-10-13 | 6人浏览过
原创

本文深入解析Python中TCP传输控制协议的应用,对比TCP与UDP差异,并提供完整的客户端与服务端代码示例。通过Windows网络调试助手进行多客户端并发测试,演示连接建立、数据收发及资源释放的全过程,帮助开发者掌握Python网络编程核心技能。

Python TCP Socket编程概述

本文详细解析了Python中TCP(传输控制协议)的具体应用方法,旨在为读者提供实用的参考案例。

TCP与UDP协议差异分析

首先探讨TCP与UDP协议的核心区别。

如需进行网络调试,可下载Windows网络调试助手工具,下载地址为:https://pan.baidu.com/s/1IwBWeAzGUO1A3sCWl20ssQ,提取码:68gr。

用户也可通过本站提供的链接直接下载该工具。

  • TCP属于面向连接的协议,在数据传输前需通过三次握手建立连接。
  • 该协议确保数据按序传输,保证接收端收到的数据顺序与发送端一致。
  • 具备重发机制,自动处理丢失的数据包以保障完整性。
  • 自动识别并丢弃重复的数据包,防止数据冗余。
  • 提供无差错的数据传输服务,通过校验机制确保数据准确。
  • 内置阻塞与流量控制机制,防止发送方过快导致接收方溢出。

Python TCP客户端实现

接下来展示Python客户端的实现代码。


import socket
def main():
  # 创建套接字
  tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  # 连接服务器
  #tcp_socket.connect(("172.17.3.97",8080))
  server_ip = input("请输入要链接的服务器ip:")
  server_port = int(input("请输入要链接的服务器port:"))
  server_addr = (server_ip,server_port)
  tcp_socket.connect(server_addr)
  # 发送数据/接收数据
  send_data = input("请输入要发送的数据:")
  tcp_socket.send(send_data.encode("gbk"))
  #关闭套接字
  tcp_socket.close()
if __name__ == "__main__":
  main()

Python TCP服务端实现

服务端部分代码展示,实际测试时可同时开启多个网络调试助手作为客户端进行并发测试。

服务端逻辑设计为循环处理,既支持为多个不同客户端提供服务,也能持续为同一客户端保持连接服务。


import socket
def main():
  # 创建套接字
  tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定本地信息
tcp_server_socket.bind("",7890)
# 让默认套接字由主动变为被动listen
tcp_server_socket.listen(128)
while True:
  print("等待一个新的客户端......")
  # 等待客户端的连接 accept
  new_client_socket ,client_addr = tcp_server_socket.accept()
  print("一个新的客户端已到来%s" %str(client_addr))
  while True:
    # 接受客户端发过来的请求
    recv_data = new_client_socket.recv(1024)
    print("客户端发来的请求是%s" %recv_data.decode("gbk"))
    # 如果recv解堵塞,那么有两种方式:
    # 1.客户端发来数据
    # 2.客户端调用close
    if recv_data:
      # 回送一部分数据给客户端
      new_client_socket.send("hahaha".encode("gbk"))
    else:
      break
  # 关闭套接字
  new_client_socket.close()
  print("服务完毕,谢谢光临!")
# 如果将监听套接字关闭,会导致不能再次等待新的客户端到来
tcp_server_socket.close()
if __name__ == "__main__":
  main()

若需进一步了解Python其他技术细节,可参考本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。

希望上述内容能对您的Python程序设计工作提供有效帮助。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表