C++减少modbus_connect超时
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
并获得错误描述,以了解您的连接发生了什么。
相关文章:
- C++减少modbus_connect超时
- 没有超时的C++条件变量
- 如何在C++(VS2010)中设置超时读取USB端口?
- WinSock2:connect() 提供"连接被拒绝"
- C++卷曲柱在curl_easy_perform超时
- 如何在Qt 4.8中阻止/忽略/丢弃早于特定超时的用户输入事件
- 如何使用connect将qml按钮与同一类的cpp函数连接起来
- 在 QTextEdit 中使用指针或在 Qt-Creator 上使用 connect()
- 如何改进我的代码,使其不会因超时而终止?(黑客排名挑战)
- C++:函数外部的超时功能
- 使用boost::multiprecision cpp_int左移时出现超时错误
- QTimer 超时不会在单元测试中触发
- 使用单体计时器的pthread_cond_timedwait有时会比预期晚超时
- gnuradio c++ connect self() throw bad_weak_ptr
- 超时后,线程睡眠不会继续执行
- 如何设置超时以在C套接字上"connect()"功能?
- Winsock 的 connect() 函数中的超时
- 修改connect()超时时间
- 设置boost socket.connect的超时时间
- connect()超时不工作