Python3 socket同步通信简单示例


Posted in Python onJune 07, 2017

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
python实现的各种排序算法代码
Mar 04 Python
python BeautifulSoup使用方法详解
Nov 21 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
使用pandas的DataFrame的plot方法绘制图像的实例
May 24 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
python3+selenium实现126邮箱登陆并发送邮件功能
Jan 23 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
Python 分享10个PyCharm技巧
Jul 13 Python
pytorch构建多模型实例
Jan 15 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 Python
Python实现获取磁盘剩余空间的2种方法
Jun 07 #Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 #Python
Python中音频处理库pydub的使用教程
Jun 07 #Python
python中defaultdict的用法详解
Jun 07 #Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 #Python
python面向对象_详谈类的继承与方法的重载
Jun 07 #Python
windows下python连接oracle数据库
Jun 07 #Python
You might like
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php中curl使用指南
2015/02/05 PHP
php身份证号码检查类实例
2015/06/18 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
JS中表单的使用小结
2014/01/11 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
JS原型、原型链深入理解
2016/02/27 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
Vue.js实现大转盘抽奖总结及实现思路
2019/10/09 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
Python对列表排序的方法实例分析
2015/05/16 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
Pytorch释放显存占用方式
2020/01/13 Python
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
ECHT官方网站:男女健身服
2020/02/14 全球购物
函授本科自我鉴定
2014/02/04 职场文书
青年文明号创建承诺
2014/03/31 职场文书
优秀班主任材料
2014/12/16 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python