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 pass 语句使用示例
Mar 11 Python
python中反射用法实例
Mar 27 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
Python元组常见操作示例
Feb 19 Python
Python列表删除元素del、pop()和remove()的区别小结
Sep 11 Python
Python list与NumPy array 区分详解
Nov 06 Python
Pycharm最新激活码2019(推荐)
Dec 31 Python
dpn网络的pytorch实现方式
Jan 14 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
浅谈Python程序的错误:变量未定义
Jun 02 Python
Python find()、rfind()方法及作用
Dec 24 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 list()函数的详解
2013/06/05 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
简单的自定义php模板引擎
2016/08/26 PHP
JScript中的"this"关键字使用方式补充材料
2007/03/08 Javascript
js实现DIV的一些简单控制
2007/06/04 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
2015/11/09 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
深入理解python多进程编程
2016/06/12 Python
python中正则表达式与模式匹配
2019/05/07 Python
python lxml中etree的简单应用
2019/05/10 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python shelve模块实现解析
2019/08/28 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
生日宴会主持词
2014/03/20 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
电力工程合作意向书
2015/05/11 职场文书
民间借贷借条范本
2015/05/25 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
Python Flask实现进度条
2022/05/11 Python