Python3 socket同步通信简单示例

 更新时间:2017年06月07日 11:16:23   作者:JoeBlackzqq  
这篇文章主要介绍了Python3 socket同步通信功能,结合简单实例形式分析了Python socket同步通信客户端与服务器端实现技巧,需要的朋友可以参考下

本文实例讲述了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绘制华强买瓜的字符画视频的步骤详解

    要把华强卖瓜做成字符视频大概分为三步,通过读取视频,把每一帧转为字符画,接着把字符画表现出来,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-11-11
  • python实现事件驱动

    python实现事件驱动

    这篇文章主要为大家详细介绍了python实现事件驱动的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Python聊天室程序(基础版)

    Python聊天室程序(基础版)

    这篇文章主要为大家详细介绍了Python聊天室程序的基础版,包含客户端和服务器端两部分,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python脚本实现图片文件批量命名

    Python脚本实现图片文件批量命名

    这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-02-02
  • python使用点操作符访问字典(dict)数据的方法

    python使用点操作符访问字典(dict)数据的方法

    这篇文章主要介绍了python使用点操作符访问字典(dict)数据的方法,涉及Python操作字典的技巧,需要的朋友可以参考下
    2015-03-03
  • python tkinter制作用户登录界面的简单实现

    python tkinter制作用户登录界面的简单实现

    这篇文章主要介绍了python tkinter制作用户登录界面的简单实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python中栈的详细介绍

    Python中栈的详细介绍

    这篇文章主要介绍的是Python中栈,栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征,下面来看看文章的具体举例介绍,需要的朋友可以参考一下
    2021-11-11
  • numpy数组合并和矩阵拼接的实现

    numpy数组合并和矩阵拼接的实现

    这篇文章主要介绍了numpy数组合并和矩阵拼接的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 利用Python的Flask框架来构建一个简单的数字商品支付解决方案

    利用Python的Flask框架来构建一个简单的数字商品支付解决方案

    这篇文章主要介绍了利用Python的Flask框架来构建一个简单的数字商品支付解决方案,文中用极简的代码展示了一个flask框架下的支付模版,需要的朋友可以参考下
    2015-03-03
  • Python中__name__的使用实例

    Python中__name__的使用实例

    这篇文章主要介绍了Python中__name__的使用实例,并总结了两种情况下__name__的值会是什么,需要的朋友可以参考下
    2015-04-04

最新评论