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 31 Python
python实现折半查找和归并排序算法
Apr 14 Python
python 文件操作删除某行的实例
Sep 04 Python
python生成器,可迭代对象,迭代器区别和联系
Feb 04 Python
Python高斯消除矩阵
Jan 02 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
python 求1-100之间的奇数或者偶数之和的实例
Jun 11 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
Python识别验证码的实现示例
Sep 30 Python
Python3获取cookie常用三种方案
Oct 05 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安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
PHP类的特性实例分析
2016/09/28 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
jQuery版Tab标签切换
2011/03/16 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
详解Python中最难理解的点-装饰器
2017/04/03 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
flask中的wtforms使用方法
2018/07/21 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
学术会议欢迎词
2014/01/09 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
2015年手术室工作总结
2015/05/11 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL
python缺失值填充方法示例代码
2022/12/24 Python