我試圖找到簡單的方法來選擇和隨機端口監聽。我可以遍歷所有端口並嘗試打開每個端口,然後將此fd傳遞給BIO,但此解決方案太複雜並且可能被破壞。另外,我搜索便攜式解決方案。openssl和隨機端口監聽
而不是我搜索單個OpenSSL函數,但無法找到任何。是否有像OpenSSL庫提供的單一函數調用的簡單解決方案?
關於我的迴應:
我有麻煩,同時通過 「*」 或 「*:*」 來BIO_new_accept和BIO_get_accept_port得到端口號。在這種情況下,BIO_get_accept_port完全返回我傳遞給BIO_new_accept的字符串。任何建議如何獲取端口號?
附加編輯:
我發現我必須調用之後星號撥打BIO_do_accept到BIO_new_accept,但有錯誤:
140418757990096:錯誤:02003000:系統庫:getservbyname函數:系統庫:b_sock.c :224:service ='*'
您的意思是說服務器應該隨機綁定到一個端口,並且監聽而不是特定的端口? (就像客戶如何不特別綁定)? – Prabhu
我的意思是服務器應綁定在第一個自由端口上。客戶端知道端口號,因爲服務器運行客戶端並將端口號設置爲環境變量。 – nintyfan