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爬虫的基本写法
Jan 08 Python
详谈python http长连接客户端
Jun 12 Python
python中logging包的使用总结
Feb 28 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
详解python的argpare和click模块小结
Mar 31 Python
centos7之Python3.74安装教程
Aug 15 Python
python基于K-means聚类算法的图像分割
Oct 30 Python
python标准库os库的函数介绍
Feb 12 Python
python用什么编辑器进行项目开发
Jun 17 Python
PyQt5多线程防卡死和多窗口用法的实现
Sep 15 Python
python try...finally...的实现方法
Nov 25 Python
python自动化调用百度api解决验证码
Apr 13 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和ACCESS写聊天室(七)
2006/10/09 PHP
PHP技术开发技巧分享
2010/03/23 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
jQuery操作css样式
2017/05/15 jQuery
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
JS简易计算器实例讲解
2020/06/30 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
师范应届生教师求职信
2013/11/05 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL