欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

TCP文件下载器(Python)

发布时间:2025/3/15 python 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 TCP文件下载器(Python) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

使用TCP编写一个文件下载器,分为客户端和服务器,此博客为上一篇的延伸,增加了文件读写编程。

下载器服务器程序:

import socketdef send_file_client(new_client_socket, client_addr):# 1.接受客户端发过来的文件名file_name=new_client_socket.recv(1024).decode("utf-8")print("客户端发下载的文件名:%s"%str(file_name))# 2.打开这个文件,读取数据file_content=Nonetry: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(file_content)def main():# 创建套接字tcp_sever_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 绑定本地信息tcp_sever_socket.bind(('',7890))# 让默认是套接字主动变为被动(listen)tcp_sever_socket.listen(128)while True:# 等待客户端的链接print("等待新的客户端到来")new_client_socket,client_addr=tcp_sever_socket.accept() # 服务套接字print("客户端已经到来:%s"%str(client_addr))# 调用发送文件函数send_file_client(new_client_socket,client_addr)# 关闭套接字new_client_socket.close()print("已经为这个客户端服务完毕")tcp_sever_socket.close() if __name__ == '__main__':main()

下载器客户端程序:

import socketdef main():# 1.创建套接字tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 2.获取服务器ip,portdest_ip=input("输入下载服务器的IP:")dest_port=int(input("输入下载服务器的port:"))# 3.连接服务器tcp_socket.connect((dest_ip,dest_port))# 4.获取下载的文件名字download_file=input("输入下载文件的名字:")# 5.将下载的文件名字发送到服务器tcp_socket.send(download_file.encode("utf-8"))# 6.接受文件中的数据recv_data=tcp_socket.recv(1024*1024)if recv_data:# 7.保存接收到的数据到文件中with open("new"+download_file,"wb") as f:f.write(recv_data)# 8.关闭套接字tcp_socket.close() if __name__ == '__main__':main()

总结

以上是生活随笔为你收集整理的TCP文件下载器(Python)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。