news 2026/5/15 22:27:08

认识Python网络套接字编程之流式套接字(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
认识Python网络套接字编程之流式套接字(一)

流式套接字

当你需要使用 TCP 协议进行通信时,需要创建流式套接字。这是套接字编程中最常用的一种。

光谈这些概念显得很抽象,还是举送外卖的这个例子,假设你点了一份烤鸭,外卖骑手需要先去店铺取餐,然后送到你的家门口,那么商家就是服务端,你的家门口是客户端,那份烤鸭是你需要接受的数据。一开始商家不知道你的住所在哪,但你知道商家的地址,你点餐这个操作就相当于和商家建立连接,当你成功下单之后,商家才知道了你的住所,就会派骑手去为你送餐了,此时你需要做的只有等待外卖骑手送餐了。

在计算机通信中,服务端开启后要做的就是等待客户端连接、接受客户端发送过来的消息和响应客户端请求。

接下来该思考用 Python 代码如何来模拟这个场景了,我们先来实现服务端,假设客户端下单后等待时间为 10 秒,与客户端交互的操作就用 socket 提供的各种函数实现,但还要注意在与客户端交互的过程中,有可能会出现 IO 异常的情况,别忘了进行异常处理;还要注意在使用完 socket 之后一定要记得关闭 socket,让系统释放资源,这是很重要的编码习惯。

服务端代码实现:

import time from socket import * serverSocket=socket(AF_INET,SOCK_STREAM) #创建套接字对象 serverSocket.bind(("127.0.0.1",6666)) #绑定IP和端口,必须是元组形势 serverSocket.listen(1) #设置连接池挂起的数量 try: connectionSocket,addr=serverSocket.accept() #接受客户端连接,connectionSocket是客户端连接服务器的信号,addr是客户端地址 print("收到"+addr[0]+":"+str(addr[1])+"的订单") time.sleep(10) #让线程等待10秒 connectionSocket.send(bytes("您的订单已送达",encoding='utf-8')) #向客户端发送消息 connectionSocket.close() #断开连接 except IOError: connectionSocket.close() serverSocket.close() #关闭套接字对象

下篇文章,与大家分享:实现客户端代码,当客户端接受到服务端的消息时,输出到控制台。

敬请期待~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 22:26:08

群联PS3111主控mSATA固态硬盘开卡实战:从识别到量产的全流程解析

1. 故障识别与工具准备 遇到一块无法格式化的mSATA固态硬盘时,首先要确认故障类型。我最近就碰到一块群联PS3111主控的硬盘,插上电脑能识别但无法初始化,磁盘管理显示"未分配空间"。这种情况多半是固件损坏或闪存映射表出错&#x…

作者头像 李华
网站建设 2026/5/15 22:18:30

Publify SEO优化完全指南:提升博客排名的7个关键策略

Publify SEO优化完全指南:提升博客排名的7个关键策略 【免费下载链接】publify A self hosted Web publishing platform on Rails. 项目地址: https://gitcode.com/gh_mirrors/pu/publify Publify是一款基于Ruby on Rails的自托管Web发布平台,也是…

作者头像 李华
网站建设 2026/5/15 22:18:30

嵌入式扫码模组:POS机核心部件技术解析与选型指南

1. 项目概述:固定式POS机里的“眼睛”与“大脑”如果你拆开过一台超市、便利店或者餐厅里常见的固定式POS机,可能会发现一个有趣的现象:那个用来扫商品条码的“窗口”或“枪口”,其内部结构远比我们想象的要精密。它不是一个简单的…

作者头像 李华
网站建设 2026/5/15 22:18:29

STM32串口通信实战:从原理到蓝桥杯嵌入式竞赛应用

1. 项目概述:串口通信在嵌入式竞赛中的核心地位在蓝桥杯嵌入式设计与开发竞赛中,串口通信是连接开发板与上位机、实现人机交互与数据监控的“生命线”。很多新手在点亮LED、驱动按键后,面对如何将板载传感器采集的温度、电压等数据“说”给电…

作者头像 李华
网站建设 2026/5/15 22:17:08

如何用Python快速接入Taotoken并调用大模型API优化客户服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何用Python快速接入Taotoken并调用大模型API优化客户服务 对于需要将大模型能力集成到客户关系管理(CRM)…

作者头像 李华