#!/usr/bin/env python # -*- coding: utf-8 -*- import http.server import socketserver import sys import os # 设置端口 PORT = 3000 # 自定义请求处理器 class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler): def log_message(self, format, *args): # 自定义日志输出 sys.stderr.write("%s - - [%s] %s\n" % (self.address_string(), self.log_date_time_string(), format % args)) def end_headers(self): # 添加CORS头 self.send_header('Access-Control-Allow-Origin', '*') self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS') self.send_header('Access-Control-Allow-Headers', 'Content-Type, Authorization') super().end_headers() def do_OPTIONS(self): self.send_response(200) self.end_headers() # 主函数 def main(): print("=" * 50) print("云大阁前端服务器") print("=" * 50) print(f"正在启动HTTP服务器...") print(f"端口: {PORT}") print(f"工作目录: {os.getcwd()}") print("=" * 50) try: # 创建服务器 with socketserver.TCPServer(("", PORT), MyHTTPRequestHandler) as httpd: print(f"\n✓ 服务器启动成功!") print(f"✓ 访问地址: http://localhost:{PORT}") print(f"✓ 按 Ctrl+C 停止服务器\n") print("等待请求...\n") # 开始服务 httpd.serve_forever() except OSError as e: if e.errno == 98 or e.errno == 10048: # Linux是98,Windows是10048 print(f"\n✗ 错误:端口 {PORT} 已被占用!") print(" 请尝试以下操作:") print(" 1. 关闭占用该端口的程序") print(" 2. 或修改脚本中的PORT变量使用其他端口") else: print(f"\n✗ 启动失败:{e}") except KeyboardInterrupt: print("\n\n正在停止服务器...") print("✓ 服务器已停止") except Exception as e: print(f"\n✗ 发生错误:{e}") if __name__ == "__main__": main()