我正在使用NetMQ套接字來執行客戶端 - 服務器通信。我有一臺監聽端口5555和一臺客戶端的服務器,即.bind()
-s。如何確定客戶端套接字的連接狀態?
這裏是我的代碼示例:
using (NetMQContext ctx = NetMQContext.Create())
{
using (var client = ctx.CreateRequestSocket())
{
client.Connect("tcp://127.0.0.1:5555");
client.SendFrame(jData);
}
}
我想這樣做是爲了傳達給用戶,如果客戶端沒有找到任何服務器偵聽到該端口。
實際發生的事情是,如果沒有服務器正在偵聽該端口,則不會引發異常,並調用.sendFrame()
並導致應用程序崩潰。
是否有任何方法,如異常或狀態碼,可以告訴我,如果連接成功或不?
你可以要求連接的屬性,這將強制連接創建或失敗。例如,你可以要求從本地客戶端的TCP/IP連接ID,這可能會強制連接打開 –
我試圖找到一些屬性或方式來溝通,如果連接不可能。根據我的理解,zeromq/netmq框架沒有通知。無論客戶端還是服務器先連接,圖書館都會嘗試儘可能地連接 – Snake