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 相关文章推荐
使用C++扩展Python的功能详解
Jan 12 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
python aiohttp的使用详解
Jun 20 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
Python脚本破解压缩文件口令实例教程(zipfile)
Jun 14 Python
selenium3.0+python之环境搭建的方法步骤
Feb 01 Python
python用字节处理文件实例讲解
Apr 13 Python
Python基础之教你怎么在M1系统上使用pandas
May 08 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
DC动漫人物排行
2020/03/03 欧美动漫
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
php中final关键字用法分析
2016/12/07 PHP
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
Python运算符重载用法实例分析
2015/06/01 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
土木工程应届生自荐信
2013/09/24 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
品质标语大全
2014/06/21 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
三方股东合作协议书
2014/10/28 职场文书
大学生自荐材料范文
2014/12/30 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
学会感恩主题班会
2015/08/12 职场文书