服务器端

 import socket

 def send_file_2_client(new_client_socket,client_addr):
# 接收信息
file_name = new_client_socket.recv(1024).decode("utf-8") print("客户%s要下载的文件是:%s" % (str(client_addr), file_name)) # 定义发送的内容
send_content = None # 打开文件
try:
f = open(file_name,"rb")
send_content = f.read()
f.close()
except Exception as ret:
print("没有该文件信息") # 不做判断 如果没有该文件会报错:TypeError: a bytes-like object is required, not 'NoneType'
if send_content:
new_client_socket.send(send_content) def main():
# 创建套接字
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 绑定端口
tcp_server_socket.bind(("",7788)) # 被动监听
tcp_server_socket.listen(128) while True:
# 接收客户端信息
new_client_socket,client_addr = tcp_server_socket.accept() # while True:
send_file_2_client(new_client_socket,client_addr) # 关闭
new_client_socket.close()
# 关闭套接字
tcp_server_socket.close()

客户端

import socket

def main():
# 创建
tcp_client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 连接服务器
# ip和port可以写死 也可以用input() 输入
server_ip = input("请输入服务器IP:")
server_port = int(input("请输入端口:"))
tcp_client_socket.connect((server_ip,server_port)) # 发送信息
file_name = input("请输入要下载的文件名:")
tcp_client_socket.send(file_name.encode("utf-8")) # 接收对方发来的数据
recv_data = tcp_client_socket.recv(1024)
print(recv_data)
if recv_data:
with open("[接收]" + file_name,"wb") as f:
f.write(recv_data) # 关闭套接字
tcp_client_socket.close()

tcp文件下载的更多相关文章

  1. python sockerserver tcp 文件下载 udp

    #tcp serverclass MyHandler(socketserver.BaseRequestHandler): def handle(self): # 通信循环 while True: tr ...

  2. tcp文件下载客户端+服务端

    客户端: import socket if __name__ == '__main__': # 创建tcp客户端socket tcp_client_socket = socket.socket(soc ...

  3. python实现tcp文件下载器

    服务器端代码 import socket import os import threading # 处理客户端请求下载文件的操作(从主线程提出来的代码) def deal_client_request ...

  4. 使用网络TCP搭建一个简单文件下载器

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶服务器Server 三丶测试TCP server服务器 四丶客户端Client 五丶测试客户端向服务器下载 ...

  5. tcp案例之文件下载器

    文件下载器客户端 import socket def main(): # 1.创建一个tcp socket tcp_client_socket=socket.socket(socket.AF_INET ...

  6. {每日一题}:tcp协议实现简单的文件下载器(单任务版)

    文件下载器客户端 这个版本的只是为了方便回顾一下TCP客服端,服务端的创建流程,缺点就是  服务器一次只能让一个人访问下载,过两个写个使用面向对象写一个多线程版的强化一下. from socket i ...

  7. Python TCP通信之仿文件下载

    TCP_文件下载_Client.py import socket def main(): # 创建TCP套接字 tcp_socket = socket.socket(socket.AF_INET, s ...

  8. 网络编程-python实现-TCP实现文件下载(1.1.4)

    @ 目录 代码实现 代码实现 客户端 from socket import * def main(): # 创建socket tcp_client_socket = socket(AF_INET, S ...

  9. python tcp 粘包问题解决、文件下载等

    from socket import * #以下是关于tcp:服务端 和 客户端的小例子#服务端socket_server = socket(AF_INET, SOCK_STREAM) socket_ ...

随机推荐

  1. LeetCode 718. 最长重复子数组(Maximum Length of Repeated Subarray)

    718. 最长重复子数组 718. Maximum Length of Repeated Subarray 题目描述 给定一个含有 n 个正整数的数组和一个正整数 s,找出该数组中满足其和 ≥ s 的 ...

  2. 转:如何正确彻底删除webpack 全局或是局部?

    原文链接:如何正确彻底删除webpack 全局或是局部? 就需要卸载cli 配置webpack ,提示需要安装 webpack-cli,选择yes 后安装webpack-cli , 可是问题不断,所以 ...

  3. Struts笔记5

    文件下载 1.写action类 package com.gyf.web.action; import java.io.File; import java.io.FileInputStream; imp ...

  4. Django框架下报的版本问题

    报错环境 python=3.6.5,django=2.2,PyMySQL=0.9.3 …… django.core.exceptions.ImproperlyConfigured: mysqlclie ...

  5. 虚拟机VMware中安装Ubuntu18.04

    准备工作 Ubuntu 获取地址: 官网 清华镜像站 VMware 获取地址链接 安装过程 Vmware的安装过程此处不在赘述,不清楚如何安装的请自行百度,参见VMware14安装教程 然后就是Vmw ...

  6. Hadoop 完全分布式搭建

    搭建环境 https://www.cnblogs.com/YuanWeiBlogger/p/11456623.html 修改主机名------------------- 1./etc/hostname ...

  7. 【数论】小A进学校

    小A进学校 题目描述 近日,清华大学挖出来一个明清古墓.小A决定冒充考古系科研人员去盗墓.他遇到的第一个难关是来自校门口保安的质疑,因为小没有清华学生证,所以保安决定通过问问题的方式验证小A的身份. ...

  8. spring源码学习(一)--AOP初探

    LZ以前一直觉得,学习spring源码,起码要把人家的代码整体上通读一遍,现在想想这是很愚蠢的,spring作为一个应用平台,不是那么好研究透彻的,而且也不太可能有人把spring的源码全部清楚的过上 ...

  9. 面试题目<转载>

    1:检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)        2:echo(),print(),print_r()的区别(3分)        3:表单中 get与post提交方法的 ...

  10. C# 小数各种操作

    Math.Ceiling();//向上取整 //举一反三 Math.Floor();//向下取整 Math.Round();//四舍六入五取偶