【python】 tcp 文件下载

服务器端.py

import socket

tcp_socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
address = ("", 8888)
tcp_socket_server.bind(address)
tcp_socket_server.listen(128)
while True:
    new_socket, addr = tcp_socket_server.accept()
    print(str(addr) + "连接此服务端")
    recv_data = new_socket.recv(1024)
    file_name = recv_data.decode("gbk")
    print(file_name)
    try:
        with open("./server_file/" + file_name, "rb") as f:
            while True:
                file_data = f.read(1024)
                if file_data:
                    new_socket.send(file_data)
                else:
                    break
    except Exception as e:
        print("文件%s下载失败" % file_name)
    else:
        print("文件%s下载成功" % file_name)
    finally:
        new_socket.close()
tcp_socket_server.close()

客户端.py

import socket

tcp_socket_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
address = ("192.168.0.8", 8888)
tcp_socket_client.connect(address)
file_name = input("请输入要下载的文件名:")
tcp_socket_client.send(file_name.encode("gbk"))
with open("./" + file_name, "wb") as f:
    while True:
        file_data = tcp_socket_client.recv(1024)
        if file_data:
            f.write(file_data)
        else:
            break
tcp_socket_client.close()

  

原文地址:https://www.cnblogs.com/lautung/p/13863699.html