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 相关文章推荐
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
浅谈flask中的before_request与after_request
Jan 20 Python
对python程序内存泄漏调试的记录
Jun 11 Python
python TKinter获取文本框内容的方法
Oct 11 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
Python 文件数据读写的具体实现
Jan 24 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
如何使用repr调试python程序
Feb 28 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
python新手学习使用库
Jun 11 Python
python代数式括号有效性检验示例代码
Oct 04 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 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&mysql(二)
2006/10/09 PHP
php正则表达式(regar expression)
2011/09/10 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
Python算术运算符实例详解
2017/05/31 Python
Python实现的堆排序算法示例
2018/04/29 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
商务英语求职自荐信范文
2013/12/24 职场文书
个人委托书格式
2014/04/04 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
党校毕业个人总结
2015/02/28 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
bose降噪耳机音能消除人声吗
2022/04/19 数码科技
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
全网非常详细的pytest配置文件
2022/07/15 Python