robotengine.help_server
1import http.server 2import socketserver 3import webbrowser 4import os 5import socket 6 7def find_free_port(): 8 """找到一个空闲的端口""" 9 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: 10 s.bind(("", 0)) # 绑定到一个随机空闲端口 11 return s.getsockname()[1] # 返回分配的端口 12 13def start_server(html_file=""): 14 abspath = os.path.abspath(html_file) 15 file_dir = os.path.dirname(abspath) 16 print("绝对路径:", abspath) 17 print(f"切换到目录:{file_dir}") 18 os.chdir(file_dir) 19 20 if not os.path.exists(abspath): 21 print(f"File not found: {abspath}") 22 return 23 24 port = find_free_port() 25 26 Handler = http.server.SimpleHTTPRequestHandler 27 with socketserver.TCPServer(("", port), Handler) as httpd: 28 print(f"Serving at http://localhost:{port}") 29 30 relative_file_url = os.path.relpath(abspath, file_dir).replace("\\", "/") 31 32 webbrowser.open(f'http://localhost:{port}/{relative_file_url}') 33 34 httpd.serve_forever()
def
find_free_port():
8def find_free_port(): 9 """找到一个空闲的端口""" 10 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: 11 s.bind(("", 0)) # 绑定到一个随机空闲端口 12 return s.getsockname()[1] # 返回分配的端口
找到一个空闲的端口
def
start_server(html_file=''):
14def start_server(html_file=""): 15 abspath = os.path.abspath(html_file) 16 file_dir = os.path.dirname(abspath) 17 print("绝对路径:", abspath) 18 print(f"切换到目录:{file_dir}") 19 os.chdir(file_dir) 20 21 if not os.path.exists(abspath): 22 print(f"File not found: {abspath}") 23 return 24 25 port = find_free_port() 26 27 Handler = http.server.SimpleHTTPRequestHandler 28 with socketserver.TCPServer(("", port), Handler) as httpd: 29 print(f"Serving at http://localhost:{port}") 30 31 relative_file_url = os.path.relpath(abspath, file_dir).replace("\\", "/") 32 33 webbrowser.open(f'http://localhost:{port}/{relative_file_url}') 34 35 httpd.serve_forever()