2017年9月8日 星期五

UEFI Application - Python HTTPServer

今天繼續來嘗試 HTTPServer module
但是要記得在 AppPkg\Applications\Python\Efi\config.c 打開 "select" module

實際在執行時,會發生 threading module error
手動 copy PC 版的 threading.py and _threading_local.py 到 EFI\StdLib\lib\python.27

到目前為止,終於可以順利的執行測試程式 
如果執行目錄下沒有 index.html
開啟瀏覽器便會看到執行目錄的檔案列表

不過在點選下載時會發生 content_length 的錯誤
有空再來看看發生什麼事了

test code
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler

HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"

server_address = ('192.168.0.163', 8080)

HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)

print 'Starting httpd...'
httpd.serve_forever()

受限於 UEFI 單工的執行方式
HTTPServer 的效能並不太好
底下是用 ab 測試的數據,提供參考


沒有留言:

張貼留言