Python使用socket_TCP实现小文件下载功能


Posted in Python onOctober 09, 2020

服务器

import socket
 
# 1.创建套接字
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.绑定端口
server.bind(('127.0.0.1', 7890))
# 3.变为被动监听模式
server.listen(4)
while True:
  # 4.等待客户端链接
  s_new, addr = server.accept()
  print('用户【{}】已经成功连接!!'.format(addr[0]))
  while True:
    # 5.接受消息
    try:
      # 若客户端强行断开连接服务器不会崩溃
      recv_data = s_new.recv(1024).decode('utf-8')
      if recv_data:
        print('来自【{}】的用户表示要下载: 【{}】'.format(addr[0], recv_data))
        # 6.发送消息
        try:
          f = open(recv_data, 'rb')
          content = f.read()
          send_data = s_new.send(content)
          f.close()
          print('下载成功!')
        except Exception as result:
          send_data = s_new.send('Non'.encode('utf-8'))
          print('未找到要下载的文件')
      else:
        print('用户已经正常退出!')
        break
    except Exception as res:
      print('用户已经退出连接!')
      break
  s_new.close()
# 7,关闭套接字
server.close()

客户端

import socket
# 创建套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址
s.connect(('127.0.0.1', 7890))
while True:
 
  # 发送数据
  send_data = str(input('请输入想要下载的文件名:'))
  if send_data == 'exit':
    print('已退出下载!')
    break
  s.send(send_data.encode('utf-8'))
 
  # 接收数据
  recv_data = s.recv(2048)
  if recv_data == 'Non'.encode('utf-8'):
    print('未找到要下载的文件!')
  else:
    with open('【new】' + send_data, 'wb') as f:
      f.write(recv_data)
      print('[{}]下载成功!'.format(send_data))
      f.close()
 
# 关闭套接字
s.close()

运行结果(服务器):

Python使用socket_TCP实现小文件下载功能

运行结果(客户端):

Python使用socket_TCP实现小文件下载功能

文件结果;

Python使用socket_TCP实现小文件下载功能

到此这篇关于Python使用socket_TCP实现小文件下载功能的文章就介绍到这了,更多相关Python小文件下载内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中文乱码不着急,先看懂字节和字符
Dec 20 Python
Python 反转字符串(reverse)的方法小结
Feb 20 Python
python查询mysql,返回json的实例
Mar 26 Python
Python实现获取前100组勾股数的方法示例
May 04 Python
利用pandas将numpy数组导出生成excel的实例
Jun 14 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
Nov 01 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
Python while true实现爬虫定时任务
Jun 08 Python
Python3爬虫关于识别点触点选验证码的实例讲解
Jul 30 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 Python
python实现逻辑回归的示例
Oct 09 #Python
Django生成数据库及添加用户报错解决方案
Oct 09 #Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 #Python
python实现数据结构中双向循环链表操作的示例
Oct 09 #Python
Python collections模块的使用方法
Oct 09 #Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 #Python
Python中Selenium模块的使用详解
Oct 09 #Python
You might like
php 学习资料零碎东西
2010/12/04 PHP
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
yii操作cookie实例简介
2014/07/09 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
SWFObject Flash js调用类
2008/07/08 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
Python如何读取MySQL数据库表数据
2017/03/11 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
幼儿园庆六一游园活动方案
2014/01/29 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技