[英]C++ decrease modbus_connect timeout
我想嘗試 10 個即時 modbus 連接。 但是,每次我無法連接時,我必須等待 2 分鍾才能進行下一次連接,因為之前的 modbus_connect 調用仍在主動監聽。 所以,如果我連接失敗 10 次,我必須等待 20 分鍾。
int max_tries = 10;
int retries = 0;
while ((modbus_connect(ctx) == -1) && retries < max_retries){
retries++;
// wait 2 mins
// I need to remove this waiting time
}
有人可以幫我減少超時時間嗎? 我正在使用 Libmodbus v3.1.6
如果您正在談論 TCP 連接,則您的程序的行為可能是正確的。
這里涉及到幾件事,因為你說你建立了連接並且“正在積極傾聽”。 不能兩者兼而有之。
如果建立連接,我唯一能想到的就是通常connect
(低級,不是modbus)會嘗試幾次(連接后)發送SYN
數據包(或多或少兩分鍾),如果沒有響應斷開連接。
這可能是一個問題。
如果您正在監聽,則必須設置 SO_REUSEADDR 套接字選項。
在任何情況下,您都應該驗證errno
並獲取錯誤描述以了解您的連接發生了什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.