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读写及压缩和解压缩文件的示例
Jul 08 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
Sep 15 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
python实现感知器算法详解
Dec 19 Python
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
Python内置函数reversed()用法分析
Mar 20 Python
15行Python代码带你轻松理解令牌桶算法
Mar 21 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
python飞机大战pygame碰撞检测实现方法分析
Dec 17 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
django model object序列化实例
Mar 13 Python
python爬虫数据保存到mongoDB的实例方法
Jul 28 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网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
基于php权限分配的实现代码
2013/04/28 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
完美解决AJAX跨域问题
2013/11/01 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
js脚本实现数据去重
2014/11/27 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
Vue计算属性的使用
2017/08/04 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
python的Tqdm模块的使用
2018/01/10 Python
python 弧度与角度互转实例
2020/04/15 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
玄武湖导游词
2015/02/05 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书