基于socket進行文件傳輸的過程可以分為以下幾個步驟:
listen()
方法。accept()
方法。以下是一個簡單的示例代碼:
服務器端代碼:
import socket
# 創建socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 綁定IP地址和端口號
server_address = ('localhost', 8888)
server_socket.bind(server_address)
# 開始監聽
server_socket.listen()
# 接受客戶端連接請求
client_socket, addr = server_socket.accept()
# 接收文件數據并保存到本地文件
with open('received_file.txt', 'wb') as file:
while True:
data = client_socket.recv(1024)
if not data:
break
file.write(data)
# 關閉連接
client_socket.close()
server_socket.close()
客戶端代碼:
import socket
# 創建socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 連接服務器
server_address = ('localhost', 8888)
client_socket.connect(server_address)
# 打開要傳輸的文件
with open('file_to_send.txt', 'rb') as file:
# 讀取文件數據并發送給服務器
while True:
data = file.read(1024)
if not data:
break
client_socket.sendall(data)
# 關閉連接
client_socket.close()
以上示例代碼僅展示了最基本的文件傳輸過程,實際應用中可能需要處理更多的異常情況、加入數據校驗和安全驗證等。