日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

TCP文件下载器(Python)

發布時間:2025/3/15 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。