本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《Python入門2020最新大課》,主講人姜偉。
文件下載案例
TCP服務器端:
import socket, os
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('192.168.31.199', 9090))
server_socket.listen(128)
# 接收客戶端的請求
client_socket, client_addr = server_socket.accept()
file_name = client_socket.recv(1024).decode('utf8')
# print('接收到了來自{}地址{}端口的數據,內容是:{}'.format(client_addr[0], client_addr[1], data))
if os.path.isfile(file_name):
# print('讀取文件,返回給客戶端')
with open(file_name, 'rb') as file:
content = file.read()
client_socket.send(content)
else:
print('文件不存在')
TCP客戶端:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('192.168.31.199', 9090))
# s.send('hello'.encode('utf8'))
file_name = input('清輸入您要下載的文件名:')
s.send(file_name.encode('utf8'))
with open(file_name, 'wb') as file:
while True:
content = s.recv(1024)
if not content:
break
file.write(content)
s.close()