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实现给数组按片赋值的方法
Jul 28 Python
python登录并爬取淘宝信息代码示例
Dec 09 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
在Python中获取操作系统的进程信息
Aug 27 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
学Python 3的理由和必要性
Nov 19 Python
Python cookie的保存与读取、SSL讲解
Feb 17 Python
利用python实现逐步回归
Feb 24 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
python 邮件检测工具mmpi的使用
Jan 04 Python
Python pygame实现中国象棋单机版源码
Jun 20 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语法(3)
2006/10/09 PHP
php && 逻辑与运算符使用说明
2010/03/04 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
深入讲解Python编程中的字符串
2015/10/14 Python
Python中生成Epoch的方法
2017/04/26 Python
Python中类的初始化特殊方法
2017/12/01 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
美国知名日用品连锁超市:Dollar General(多来店)
2017/01/14 全球购物
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
Weblogic的布署方式
2013/08/23 面试题
毕业生物理教师求职信
2013/10/17 职场文书
银行员工职业规划范文
2014/01/21 职场文书
个人近期表现材料
2014/02/11 职场文书
社区科普工作方案
2014/06/03 职场文书
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python