[英]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.