Python TCP通信客户端服务端代码实例


Posted in Python onNovember 21, 2019

这篇文章主要介绍了Python TCP通信客户端服务端代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

TCP客户端:

import argparse, socket,sys
import time
# socket.setdefaulttimeout(20)

def recvall(sock, length):
  data = b''
  while len(data) < length:
    more = sock.recv(length - len(data))
    if not more:
      raise EOFError('总共有%dbytes,但只收到了%dbytes' % (length, len(data)))
    data += more
  return data
if __name__ == '__main__':
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  sock.connect(('192.168.137.1', 10000))
  print('客户的分配了socket:', sock.getsockname())
  i=0
  for x in range(4):
   # try:
     text = '我是客户端你是服务器嚯嚯嚯!'.encode('utf-8')
     i=i+len(text)
     sock.sendall(text)
     sys.stdout.flush()
     print("已发送:",i)
   # except ConnectionResetError:
   #   pass
  sock.shutdown(socket.SHUT_WR)
  num = 0
  while True:
    reply = sock.recv(48) # b'Farewell, client'的长度
    num += len(reply)
    print('接收:',num)
    if not reply:
      print("ok")
      break

    # print('服务器返回:', reply.decode('utf-8'))
  print("理论上应该关闭sock")
  sock.close()
time.sleep(1)

TCP服务端:

import argparse, socket,sys

def recvall(sock, length):
  data = b''
  while len(data) < length:
    more = sock.recv(length - len(data))
    if not more:
      raise EOFError('总共有%dbytes,但只收到了%dbytes' % (length, len(data)))
    data += more
  return data
if __name__ == '__main__':
  sc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  sc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  sc.bind(('', 10000))
  sc.listen()
  print('正在侦听{}...'.format(sc.getsockname()))
  num = 0
  while True:
    scc, address = sc.accept()
    print('连接来自:', address)
    print('socket名字:', scc.getsockname())
    print('socket peer:', scc.getpeername())
    while True:
      message = scc.recv(42)#recvall(scc, 24) # 尝试 12,,20,28会是什么结果
      if not message:
        break
      # print('收到16-octet消息:', repr(message))
      print('收到16-octet消息:', (message.decode('utf-8')))
      scc.sendall(message)
      sys.stdout.flush()
      num += len(message)
      print("已发送:",num)

    scc.close()
    print('应答发送,socket关闭')
  sc.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python pdb调试方法分享
Jan 21 Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 Python
深入解析Python中的上下文管理器
Jun 28 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
Django后台admin的使用详解
Jul 08 Python
详解numpy矩阵的创建与数据类型
Oct 18 Python
Django框架序列化与反序列化操作详解
Nov 01 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
pytorch进行上采样的种类实例
Feb 18 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
详解python UDP 编程
Aug 24 Python
python绘制随机网络图形示例
Nov 21 #Python
python绘制BA无标度网络示例代码
Nov 21 #Python
Python之指数与E记法的区别详解
Nov 21 #Python
python构建指数平滑预测模型示例
Nov 21 #Python
python实现画出e指数函数的图像
Nov 21 #Python
如何获取Python简单for循环索引
Nov 21 #Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 #Python
You might like
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
详解Vue之父子组件传值
2019/04/01 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python实现简易Web爬虫详解
2018/01/03 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python机器学习之神经网络实现
2018/10/13 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
大学三年的自我评价
2013/12/25 职场文书
家长对孩子评语
2014/01/30 职场文书
社团活动总结格式
2014/08/29 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
让世界充满爱观后感
2015/06/10 职场文书
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技