我嘗試在我的跨平臺項目中使用https://github.com/emscripten-ports/SDL2_net wrriten在C++中,但是當我嘗試通過SDLNet_TCP_Open()打開TCP套接字時,函數返回錯誤「無法連接到遠程主機」,但服務器是okey,桌面和移動客戶端精細。SDL2_net emscripten
首先,我通過emscripten測試生成的.js和.html作爲本地瀏覽器的URL C:/ [PATH TO generated.html] /,但是我認爲在本地我沒有權限((因爲它在Android,我有同樣的錯誤,然後我寫清單請求權限後...工作)),但是當我上傳我的客戶端到http服務器,錯誤仍然存在。
有人有什麼想法嗎?
編輯。 我嘗試用-s USE_SDL_NET = 2
Note
SDL_net has also been added to ports, use it with -s USE_SDL_NET=2. To see a list of all available ports, run emcc --show-ports.
從https://kripken.github.io/emscripten-site/docs/compiling/Building-Projects.html
但我得到的錯誤:
WARNING:root:Assigning a non-existent settings attribute "USE_SDL_NET"
WARNING:root: - did you mean one of USE_SDL_TTF, USE_SDL, USE_SDL_IMAGE?
WARNING:root: - perhaps a typo in emcc's -s X=Y notation?
WARNING:root: - (see src/settings.js for valid values)
EMCC - 顯示,港口,回報:
Available ports:
zlib (USE_ZLIB=1; zlib license)
libpng (USE_LIBPNG=1; zlib license)
SDL2 (USE_SDL=2; zlib license)
SDL2_image (USE_SDL_IMAGE=2; zlib license)
ogg (USE_OGG=1; zlib license)
vorbis (USE_VORBIS=1; zlib license)
bullet (USE_BULLET=1; zlib license)
freetype (USE_FREETYPE=1; freetype license)
SDL2_ttf (USE_SDL_TTF=2; zlib license)
編輯2。
我從https://github.com/jbaicoianu/emscripten/tree/c46b429ede3f5e015fe3e460867e225c3e45ae95
embuilder.py,sdl-net.py,__init__py下載並注入到我的emscripten未來,建立過程中有沒有成功上提到的問題。 但主要問題仍然存在...我有「無法連接到遠程主機」錯誤。
乾杯, 盧克
你確定你知道你在做什麼嗎?原始TCP/UDP套接字如何在瀏覽器中工作? – mostruash
這不是在桌面上的原始套接字,代碼由Emscripten構建器解釋並且emscripten已經移植/映射了Unix socket.h(可能爲HTML5 WebSocket),基於winsock for windows和socket.h的SDL_net從unix組到非wnd系統。 順便說一下,不支持UDP套接字。 –
但是你的服務器是一個原始的TCP服務器嗎?因爲websockets與原始TCP套接字完全不同。它首先發出一個HTTP請求,然後將HTTP連接升級到websocket。所以它有自己的協議。你的服務器是否處理websocket?這一切都假設SDL真正移植到瀏覽器Websocket。 – mostruash