Python是一種廣泛應用于編寫網絡應用程序的編程語言。在網絡傳輸中,經常需要進行文件的傳輸。本文將介紹如何使用Python實現簡單的文件轉發功能。
import socket # 文件發送方 def sendfile(filename, ip, port): # 創建socket對象 s = socket.socket() # 連接服務器 s.connect((ip, port)) # 發送文件名 s.send(filename.encode()) # 等待服務器確認 data = s.recv(1024).decode() if data == 'OK': # 發送文件內容 with open(filename, 'rb') as f: data = f.read() s.sendall(data) # 關閉socket連接 s.close() # 文件接收方 def recvfile(ip, port): # 創建socket對象 s = socket.socket() # 綁定本地IP和端口 s.bind((ip, port)) # 監聽連接請求 s.listen(1) while True: # 等待連接 conn, addr = s.accept() print('Connected by', addr) # 接收文件名 filename = conn.recv(1024).decode() print('Recv filename:', filename) # 確認接收文件 conn.send(b'OK') # 接收文件內容 with open(filename, 'wb') as f: while True: data = conn.recv(1024) if not data: break f.write(data) # 關閉連接 conn.close() # 測試 if __name__ == '__main__': # 啟動文件接收方 recvfile('192.168.0.100', 8888) # 啟動文件發送方 sendfile('test.txt', '192.168.0.100', 8888)
上面是一個簡單的文件轉發示例,其中sendfile函數表示文件發送方,recvfile函數表示文件接收方。代碼中使用了Python內置的socket庫來進行網絡連接。在發送文件時,首先連接服務器,然后發送文件名,并等待服務器確認。如果收到確認信息,則開始發送文件內容,并關閉socket連接。在接收文件時,首先綁定本地IP和端口,然后等待連接請求。一旦收到連接請求,接收文件名,并向對方發送確認信息。之后,開始接收文件內容,并寫入本地文件中。
上一篇vue bus 銷毀