本文比较简单,适合入门用,作个笔记,方便日后抄写

一个服务端,一个客户端,而且是阻塞方式,一次只能接受一个客户端连接并通信噢。

客户端发送‘bye', 结束与服务端的通信,如果发送’shutdown',服务端将会关闭自己!

服务端代码:

from socket import *
from time import ctimeHOST = ''
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
quit = False
shutdown = Falsewhile 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:breakss = '[%s] %s' %(ctime(), data)tcpCliSock.send(ss.encode('utf8'))print(ss)if data == 'bye':quit = Truebreakelif data == 'shutdown':shutdown = Truebreakprint('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:continueprint('input data: [%s]' %data)tcpCliSock.send(data.encode('utf8'))rdata = tcpCliSock.recv(BUFSIZE)if not rdata:breakprint(rdata.decode('utf8'))if data == 'bye' or data == 'shutdown':breaktcpCliSock.close()

参考网址:  http://blog.163.com/yi_yixinyiyi/blog/static/136286889201152814341144/

[python3] pyton socket 同步通信举例相关推荐

  1. python socket自动重连_详解python3中socket套接字的编码问题解决

    一.TCP 1.tcp服务器创建 #创建服务器 from socket import * from time import ctime #导入ctime HOST = '' #任意主机 PORT = ...

  2. java socket同步通信,javasocket客户端与服务端同步通信实例

    javasocket客户端与服务端同步通信实例 工作中没涉及有关JA V A SOCKET编程的实际经历,但理论大概了解.想正明一下自已的对JA V A SOCKET理解写个通信TEST,通过TEST ...

  3. python3 使用 socket.gethostbyname 报错 getaddrinfo failed 解决方法

    python2中: val = socket.gethostbyname('http://www.baidu.com') print (val) 运行OK. 但在python3中还是如上代码运行时报错 ...

  4. python3模块socket怎么安装_Python中socket模块的使用方法(一)

    socket(中文名称:套接字)是应用层与传输层(TCP/UDP协议)的接口.是对TCP/IP的封装.是操作系统的通信机制.应用程序通过socket进行网络数据的传输.Python中的socket是我 ...

  5. Python3中PyMongo使用举例

    MongoDB是一个基于分布式文件存储的开源数据库,由C++语言编写,与平台无关,旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关 ...

  6. Python3之socket编程(TCP/UDP,粘包问题,数据传输、文件上传)

    一.socket的定义 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后 ...

  7. PYTHON3 使用socket的接收数据包最大支持1460的简单处理方式

    1,本人小白一个,简单说下背景,这是在一个RFID读写器上进行的测试脚本开发,业务通信使用socket进行与产品的数据交互. 2,在实际通过网络助手测试中发现返回的数据量比较大,存在粘包的情况.并且接 ...

  8. Python3进阶--Socket编程、多线程(创建方式、线程通信、线程锁、线程池)

    第一章 变量.常用循环体.代码结构.代码练习 第二章 列表.元组等数据结构.字符串驻留机制及字符串格式化操作 第三章 函数.面向对象.文件操作.深浅拷贝.模块.异常及捕获 第四章 项目打包.类和对象高 ...

  9. python3的socket_python2 与 python3 socket编程的一点小区别

    python3 与python2 其实有很大的区别,但为了写程序的人的方便,很多东西尽量还是按照python2 的函数,类以及方法来处理,但这里面的编码可能会有区别.前几天为了改以前写的一个socke ...

最新文章

  1. 也谈Javascript的效率,createElement和innerHTML,为innerHTML平反
  2. nginx php 不能连接mysql_nginx配置php环境,并测试PHP是否可以连接mysql
  3. Git提交失败之 Updates were rejected because the tip of your current branch is behind
  4. python 字节字符串_Python字符串转换为字节,字节转换为字符串
  5. 将Maven项目转换成Eclipse支持的Java项目
  6. 基于SSM的手机商城
  7. Ubuntu/Linux 下切换 python 版本
  8. 定时任务cron表达式工具
  9. linux检测不到声卡设备,解决 Deepin V20、Ubuntu 20.04、Linux Mint 20 声卡无法识别导致的没有声音...
  10. WinZip 18.0下载地址及注册码
  11. VMware Workstation 15 Player 共享文件夹制作
  12. 雷达测距测速测角基本原理
  13. 前端性能优化-优化大量图片加载超大图片加载(附懒加载实现方案)
  14. 怎么查看自己的笔记本电脑系统型号以及其他配置(DXDIAG打开DirectX诊断配置)
  15. paas平台_paas平台排名
  16. python之AQI分析与预测
  17. C++可视化和图表库
  18. intellij idea 工具栏的隐藏和显示
  19. DevExtreme UI框架在可视化应用程序Nvisual中的实践应用
  20. python 手动读取cifar10_如何用python解析cifar10数据集图片

热门文章

  1. Mybatis—注解开发
  2. leetcode1448. 统计二叉树中好节点的数目(dfs)
  3. vanilla_如何在Vanilla JavaScript中操作DOM
  4. 纯函数式编程语言_纯功能编程语言如何改变您的生活。
  5. Software--Developer Tools_
  6. 上传图片在页面上显示
  7. Log4j快速使用精简版
  8. Codeforces 478B 6thweek contest_B
  9. 7种常用p2p共享协议
  10. 10一个应用阻止关机贴吧_手机该不该每天关机一次?看完才知道这么多年白用了...