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访问纯真IP数据库的代码
May 19 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 Python
Django 中间键和上下文处理器的使用
Mar 17 Python
CentOS7安装Python3的教程详解
Apr 10 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
基于树莓派的语音对话机器人
Jun 17 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
python Xpath语法的使用
Nov 26 Python
写好Python代码的几条重要技巧
May 21 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/09/09 PHP
php遍历所有文件及文件夹的方法深入解析
2013/06/08 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
实例讲解php实现多线程
2019/01/27 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
自己封装的javascript事件队列函数版
2014/06/12 Javascript
Node.js实现数据推送
2016/04/14 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
Python实现合并字典的方法
2015/07/07 Python
分析经典Python开发工程师面试题
2019/04/08 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
怎样写好自荐信和推荐信
2013/12/26 职场文书
文明村创建实施方案
2014/03/27 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
法制教育观后感
2015/06/17 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript