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脚本实现集群检测和管理功能
Mar 06 Python
Python爬虫抓取手机APP的传输数据
Jan 22 Python
python实现批量图片格式转换
Jun 16 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
感知器基础原理及python实现过程详解
Sep 30 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
部署Django到阿里云服务器教程示例
Jun 03 Python
详解python tcp编程
Aug 24 Python
python re的findall和finditer的区别详解
Nov 15 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
python实现学生通讯录管理系统
Feb 25 Python
Pygame Time时间控制的具体使用详解
Nov 17 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使用Redis替代文件存储Session的方法
2017/02/15 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
javascript入门·对象属性方法大总结
2007/10/01 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
Python数组条件过滤filter函数使用示例
2014/07/22 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
python 同时运行多个程序的实例
2019/01/07 Python
python和c语言的主要区别总结
2019/07/07 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
SQL Server面试题
2013/04/04 面试题
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
农村党员一句话承诺
2014/05/30 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
2015年暑假工作总结
2015/07/13 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
Django路由层如何获取正确的url
2021/07/15 Python
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫