我有一個C++主程序調用兩個子進程。這兩個子進程通過主程序分配的TCP端口連接。找到一個免費的TCP端口和升壓ASIO
我看到使用情況下找到一個空閒端口是程序將嘗試綁定在給定的端口,如果返回「失敗」,給一個端口++,然後再試一次。
對於我的情況,我需要在我的主程序中決定哪個端口號應該傳遞給這兩個子進程。
那麼有沒有一種簡單的方法來檢查端口是否可以使用而不嘗試綁定到它?
像
port = 1234
while(port < 1299)
if(port is bindable)
call to subprocesses
break;
else
port++
您可能面臨的邊緣情況:您檢查該端口是否空閒並傳遞它,但是在子進程啓動之前綁定到其他進程並將其盜取。 – user2802841