Files
AIEC-new/AIEC-server/server.py

68 lines
2.1 KiB
Python
Raw Normal View History

2025-10-17 09:31:28 +08:00
#!/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是98Windows是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()