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模块顶层运行的代码引起的一个Bug
Jul 04 Python
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
python复制文件的方法实例详解
May 22 Python
python 遍历列表提取下标和值的实例
Dec 25 Python
python支持多线程的爬虫实例
Dec 21 Python
python实现程序重启和系统重启方式
Apr 16 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
python中if及if-else如何使用
Jun 02 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
无惧面试,带你搞懂python 装饰器
Aug 17 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 Python
Python实现我的世界小游戏源代码
Mar 02 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错误、异常处理机制(补充)
2012/05/07 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
javascript 精粹笔记
2010/05/09 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Python基于动态规划算法计算单词距离
2015/07/25 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
Python urllib2运行过程原理解析
2020/06/04 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
印尼购物网站:iLOTTE
2019/10/16 全球购物
建筑工程管理专业自荐信范文
2013/12/28 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers