Python3 socket同步通信简单示例

发布时间 - 2026-01-11 01:46:39    点击率:

本文实例讲述了Python3 socket同步通信。分享给大家供大家参考,具体如下:

本文比较简单,适合入门用,作个笔记,方便日后抄写

一个服务端,一个客户端,而且是阻塞方式,一次只能接受一个客户端连接并通信噢。

客户端发送‘bye', 结束与服务端的通信,如果发送'shutdown',服务端将会关闭自己!

服务端代码:

from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
quit = False
shutdown = False
while True:
  print('waiting for connection...')
  tcpCliSock, addr = tcpSerSock.accept()
  print('...connected from: ', addr)
  while True:
    data = tcpCliSock.recv(BUFSIZE)
    data = data.decode('utf8')
    if not data:
      break
    ss = '[%s] %s' %(ctime(), data)
    tcpCliSock.send(ss.encode('utf8'))
    print(ss)
    if data == 'bye':
      quit = True
      break
    elif data == 'shutdown':
      shutdown = True
      break
  print('Bye-bye: [%s: %d]' %(addr[0], addr[1]))
  tcpCliSock.close()
  if shutdown:
    break
tcpSerSock.close()
print('Server has been

客户端代码:

from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
  data = input('>')
  if not data:
    continue
  print('input data: [%s]' %data)
  tcpCliSock.send(data.encode('utf8'))
  rdata = tcpCliSock.recv(BUFSIZE)
  if not rdata:
    break
  print(rdata.decode('utf8'))
  if data == 'bye' or data == 'shutdown':
    break
tcpCliSock.close()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


# Python3  # socket  # 同步通信  # python3利用Socket实现通信的方法示例  # 服务端  # 客户端  # 进阶  # 操作技巧  # 相关内容  # 将会  # 数据结构  # 给大家  # 更多关于  # 所述  # 程序设计  # 使用技巧  # 作个  # 日后  # 编程技巧  # 讲述了  # import  # time  # ctime  # class 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel安装步骤详细教程_Laravel环境搭建指南  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  再谈Python中的字符串与字符编码(推荐)  手机网站制作与建设方案,手机网站如何建设?  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  详解Oracle修改字段类型方法总结  Android 常见的图片加载框架详细介绍  奇安信“盘古石”团队突破 iOS 26.1 提权  Laravel如何生成URL和重定向?(路由助手函数)  Python进程池调度策略_任务分发说明【指导】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何在建站之星网店版论坛获取技术支持?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Mybatis 中的insertOrUpdate操作  如何在阿里云部署织梦网站?  香港服务器选型指南:免备案配置与高效建站方案解析  如何快速生成高效建站系统源代码?  Laravel如何实现数据库事务?(DB Facade示例)  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  网站页面设计需要考虑到这些问题  在线教育网站制作平台,山西立德教育官网?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  利用JavaScript实现拖拽改变元素大小  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  Laravel如何创建自定义Artisan命令?(代码示例)  如何快速上传自定义模板至建站之星?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel如何发送系统通知?(Notification渠道示例)  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  如何在腾讯云服务器上快速搭建个人网站?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  制作公司内部网站有哪些,内网如何建网站?  bing浏览器学术搜索入口_bing学术文献检索地址  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  网站制作价目表怎么做,珍爱网婚介费用多少?  Android利用动画实现背景逐渐变暗  Laravel如何实现本地化和多语言支持?(i18n教程)  香港服务器建站指南:免备案优势与SEO优化技巧全解析  Laravel如何处理表单验证?(Requests代码示例)  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权