国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Python > 正文

python基于TCP實現的文件下載器功能案例

2024-09-09 19:03:10
字體:
來源:轉載
供稿:網友

本文實例講述了python基于TCP實現的文件下載器功能。分享給大家供大家參考,具體如下:

服務器 參考代碼如下:

from socket import *import sysdef get_file_content(file_name):  """獲取文件的內容"""  try:    with open(file_name, "rb") as f:      content = f.read()    return content  except:    print("沒有下載的文件:%s" % file_name)def main():  if len(sys.argv) != 2:    print("請按照如下方式運行:python3 xxx.py 7890")    return  else:    # 運行方式為python3 xxx.py 7890    port = int(sys.argv[1])  # 創建socket  tcp_server_socket = socket(AF_INET, SOCK_STREAM)  # 本地信息  address = ('', port)  # 綁定本地信息  tcp_server_socket.bind(address)  # 將主動套接字變為被動套接字  tcp_server_socket.listen(128)  while True:    # 等待客戶端的鏈接,即為這個客戶端發送文件    client_socket, clientAddr = tcp_server_socket.accept()    # 接收對方發送過來的數據    recv_data = client_socket.recv(1024) # 接收1024個字節    file_name = recv_data.decode("utf-8")    print("對方請求下載的文件名為:%s" % file_name)    file_content = get_file_content(file_name)    # 發送文件的數據給客戶端    # 因為獲取打開文件時是以rb方式打開,所以file_content中的數據已經是二進制的格式,因此不需要encode編碼    if file_content:      client_socket.send(file_content)    # 關閉這個套接字    client_socket.close()  # 關閉監聽套接字  tcp_server_socket.close()if __name__ == "__main__":  main()

客戶端 參考代碼如下:

from socket import *def main():  # 創建socket  tcp_client_socket = socket(AF_INET, SOCK_STREAM)  # 目的信息  server_ip = input("請輸入服務器ip:")  server_port = int(input("請輸入服務器port:"))  # 鏈接服務器  tcp_client_socket.connect((server_ip, server_port))  # 輸入需要下載的文件名  file_name = input("請輸入要下載的文件名:")  # 發送文件下載請求  tcp_client_socket.send(file_name.encode("utf-8"))  # 接收對方發送過來的數據,最大接收1024個字節(1K)  recv_data = tcp_client_socket.recv(1024)  # print('接收到的數據為:', recv_data.decode('utf-8'))  # 如果接收到數據再創建文件,否則不創建  if recv_data:    with open("[接收]"+file_name, "wb") as f:      f.write(recv_data)  # 關閉套接字  tcp_client_socket.close()if __name__ == "__main__":  main()

更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永平县| 朝阳县| 遂溪县| 周至县| 枣庄市| 六盘水市| 游戏| 桐乡市| 新民市| 佛坪县| 麻城市| 萝北县| 昌吉市| 建宁县| 长武县| 南平市| 山东省| 双牌县| 红原县| 丁青县| 湘西| 金湖县| 同江市| 来安县| 吉林省| 邯郸市| 江达县| 蒙山县| 焦作市| 高要市| 晋州市| 宣武区| 麻城市| 镇远县| 通辽市| 平阴县| 白城市| 五寨县| 奉贤区| 阿鲁科尔沁旗| 崇明县|