TCP文件下载器(Python)
生活随笔
收集整理的这篇文章主要介绍了
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)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java单机部署,Nacos docke
- 下一篇: python 遍历一个空列表