python写一个文件服务器支持文件上传
下面是一个简单的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端口监听连接,当接收到客户端连接后,会接收到客户端发送的文件名,然后将文件内容保存到服务器端
原文地址: http://www.cveoy.top/t/topic/ibYT 著作权归作者所有。请勿转载和采集!