python实现TCP客户端从服务器下载文件

简介: python实现TCP客户端从服务器下载文件TCP模拟服务器import socketdef send_file_2_client(new_client_socket, client_addr):# 1.

python实现TCP客户端从服务器下载文件
TCP模拟服务器

import socket

def send_file_2_client(new_client_socket, client_addr):

# 1. 接收客户端 需要下载的文件名
# 接收客户端发送过来的 要下载的文件名
file_name = new_client_socket.recv(1024).decode("utf-8")
print("客户端(%s)需要下载文件是:%s" % (str(client_addr), file_name))

file_content = None
# 2. 打开这个文件,读取数据
try:
    f = open(file_name, "rb")
    file_content = f.read()
    f.close()
except Exception as ret:
    print("没有要下载的文件(%s)" % file_name)

# 3. 发送文件的数据给客户端
if file_content:
    # new_client_socket.send("hahahghai-----ok-----".encode("utf-8"))
    new_client_socket.send(file_content)

def main():

# 1.创建套接字 socket
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.绑定本地信息 bind
tcp_server_socket.bind(("", 7890))
# 3.让默认的套接字由主动变为被动 listen
tcp_server_socket.listen(128)

while True:
    # 4.等待客户端的链接 accept
    new_client_socket, client_addr = tcp_server_socket.accept()
    # 5. 调用发送文件函数,完成为客户端服务
    send_file_2_client(new_client_socket, client_addr)
    # 6. 关闭套接字
    new_client_socket.close()
tcp_server_socket.close()

if name == "__main__":

main()

TCP模拟客户端

"""tcp_文件下载客户端"""
from socket import *

def main():

# 创建套接字
tcp_client_socket = socket(AF_INET, SOCK_STREAM)

# 目的信息
server_ip = input("请输入服务器的IP:")
server_port = int(input("请输入服务器的port:"))
server_addr = (server_ip, server_port)
# 连接服务器 connect(目标Ip, 目标端口)
tcp_client_socket.connect(server_addr)

# 输入需要下载的文件名
file_name = input("请输入需要下载的文件名: ")

# 发送数据
tcp_client_socket.send(file_name.encode("utf-8"))

# 接收对方发过来的数据,最大值为1024字节(1K)
recv_data = tcp_client_socket.recv(1024)

if recv_data:
    with open("[接收]"+file_name, "wb")as f:
        f.write(recv_data)

# 关闭套接字
tcp_client_socket.close()

if name == '__main__':

main()

注意:使用时,一定要先开启服务器,再开启客户端;关闭时也要先关闭客户端,再关闭服务器

作者:Vince Li
来源:CSDN
原文:https://blog.csdn.net/weixin_43250623/article/details/89074221
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章
|
2月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
296 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
2月前
|
域名解析 网络协议 数据库
TCP/IP服务器
【10月更文挑战第20天】TCP/IP服务器
122 65
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
152 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
168 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
2月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
2月前
|
Python
Python 三方库下载安装
Python 三方库下载安装
28 1
|
2月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
|
2月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
442 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
2月前
|
网络协议 Java API
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
65 2