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使用shelve模块实现简单数据存储的方法
May 20 Python
Python字符串逐字符或逐词反转方法
May 21 Python
python实现石头剪刀布程序
Jan 20 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
python 双循环遍历list 变量判断代码
May 04 Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
python某漫画app逆向
Mar 31 Python
Python 解决空列表.append() 输出为None的问题
May 23 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加密解密的代码
2007/07/16 PHP
教大家制作简单的php日历
2015/11/17 PHP
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
JS验证字符串功能
2017/02/22 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
Python Socket编程入门教程
2014/07/11 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
利用python如何处理nc数据详解
2018/05/23 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
了解AppleTalk协议吗
2014/04/01 面试题
九年级化学教学反思
2014/01/28 职场文书
税务会计岗位职责
2014/02/18 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
信用卡工资证明范本
2014/10/17 职场文书
品质保证书格式
2015/02/28 职场文书
收银员岗位职责范本
2015/04/07 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
办公室卫生管理制度
2015/08/04 职场文书