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使用in操作符时元组和数组的区别分析
May 19 Python
Python设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
对Python3 * 和 ** 运算符详解
Feb 16 Python
python解释器spython使用及原理解析
Aug 24 Python
关于tf.matmul() 和tf.multiply() 的区别说明
Jun 18 Python
Python错误的处理方法
Jun 23 Python
Python turtle库的画笔控制说明
Jun 28 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
详解python程序中的多任务
Sep 16 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 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
php实例化一个类的具体方法
2019/09/19 PHP
非常好的js代码
2006/06/27 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
python pyheatmap包绘制热力图
2018/11/09 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
python绘制封闭多边形教程
2020/02/18 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
汽车机修工岗位职责
2014/03/06 职场文书
小学六年级学生评语
2014/04/22 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
关于Vue中的options选项
2022/03/22 Vue.js