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中实现两个字典(dict)合并的方法
Sep 23 Python
Python itertools模块详解
May 09 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
Python插入Elasticsearch操作方法解析
Jan 19 Python
django有哪些好处和优点
Sep 01 Python
Pycharm 如何设置HTML文件自动补全代码或标签
May 21 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中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
dedecms中使用php语句指南
2014/11/13 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
python3.x上post发送json数据
2018/03/04 Python
python贪吃蛇游戏代码
2020/04/18 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
解决Python3下map函数的显示问题
2019/12/04 Python
Python运行异常管理解决方案
2020/03/09 Python
如何提高python 中for循环的效率
2020/04/15 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
Ajax主要包含了哪些技术
2014/06/12 面试题
做人民满意的公务员活动方案
2014/08/25 职场文书
教师年终个人总结
2015/02/11 职场文书
培训督导岗位职责
2015/04/10 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server