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 相关文章推荐
有关wxpython pyqt内存占用问题分析
Jun 09 Python
python调用短信猫控件实现发短信功能实例
Jul 04 Python
如何利用Fabric自动化你的任务
Oct 20 Python
python验证码识别的示例代码
Sep 21 Python
Python打印“菱形”星号代码方法
Feb 05 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
django admin后台添加导出excel功能示例代码
May 15 Python
python简单区块链模拟详解
Jul 03 Python
python:解析requests返回的response(json格式)说明
Apr 30 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 Python
90行Python代码开发个人云盘应用
Apr 20 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
解决GD中文乱码问题
2007/02/14 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
php连接mysql数据库
2017/03/21 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python实现在目录中查找指定文件的方法
2014/11/11 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
python 二维数组90度旋转的方法
2019/01/28 Python
Python jieba库用法及实例解析
2019/11/04 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
幼儿教师师德演讲稿
2014/05/06 职场文书
大学课外活动总结
2014/07/09 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
会议室管理制度范本
2015/08/06 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
利用python做表格数据处理
2021/04/13 Python
python运行脚本文件的三种方法实例
2022/06/25 Python