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 import自定义模块方法
Feb 12 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
python 中的int()函数怎么用
Oct 17 Python
Python使用Pickle库实现读写序列操作示例
Jun 15 Python
python绘制圆柱体的方法
Jul 02 Python
django 将model转换为字典的方法示例
Oct 16 Python
Python完成哈夫曼树编码过程及原理详解
Jul 29 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
Python字符串的修改方法实例
Dec 19 Python
Python连接字符串过程详解
Jan 06 Python
python Tensor和Array对比分析
Jan 08 Python
python 破解加密zip文件的密码
Apr 22 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教程 变量定义
2009/10/23 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
Destoon模板制作简明教程
2014/06/20 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
浅谈Python中的模块
2020/06/10 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
毕业证丢失证明
2014/01/15 职场文书
法学函授自我鉴定
2014/02/06 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
工程部岗位职责
2015/02/10 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js