開發與維運

文件下載案例

本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《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()

配套視頻

Leave a Reply

Your email address will not be published. Required fields are marked *