下面是一个简单的Python文件服务器程序,支持文件上传:

import socket
import os

def handle_upload(conn, file_path):
    # 接收文件内容并保存到本地
    with open(file_path, 'wb') as f:
        while True:
            data = conn.recv(1024)
            if not data:
                break
            f.write(data)

    print(f"文件保存成功:{file_path}")

def start_server():
    # 创建服务器套接字
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_host = 'localhost'
    server_port = 8888

    # 绑定服务器地址
    server_socket.bind((server_host, server_port))

    # 监听连接
    server_socket.listen(1)
    print("服务器已启动,等待连接...")

    while True:
        # 接受客户端连接
        conn, addr = server_socket.accept()
        print(f"新连接:{addr}")

        # 接收文件名
        filename = conn.recv(1024).decode()

        # 检查文件是否已存在
        if os.path.exists(filename):
            conn.send(b"文件已存在,上传失败")
            continue

        # 发送确认消息
        conn.send(b"开始上传")

        # 处理文件上传
        handle_upload(conn, filename)

        # 关闭连接
        conn.close()

if __name__ == "__main__":
    start_server()

你可以把上述代码保存为一个Python文件(例如file_server.py),然后在终端中运行该文件。服务器将在本地8888端口监听连接,当接收到客户端连接后,会接收到客户端发送的文件名,然后将文件内容保存到服务器端

python写一个文件服务器支持文件上传

原文地址: http://www.cveoy.top/t/topic/ibYT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录