问题描述
我正在尝试使用 Stefan Rossmann Engineering Solutions 的 MQTT_Client 库将 Wago PFC200 控制器连接到我在笔记本电脑上运行的蚊子代理。
我收到“连接到 TCP 服务器超时”错误,我无法弄清楚如何进行故障排除。在用完想法之前,我尝试在运行时强制设置更大的超时值,更改我尝试连接的端口或 IP — 切换到 HiveMQ 的公共 MQTT 代理,一个在我的手机和另一台笔记本电脑上运行的代理。不确定这是否相关,但我在 e!cockpit 工作。
套接字已成功创建,然后发生错误,因为 xResult := SysSockConnect(disocket,ADR(sockAddr),SIZEOF(sockAddr));
未更改为 True — 为什么会这样?
IF (sockAddr.sin_addr = 0) THEN
sockAddr.sin_family := SOCKET_AF_INET;
IF (right(i_sbrokerAddress,1) = '0' OR right(i_sbrokerAddress,1) = '1' OR right(i_sbrokerAddress,1) = '2' OR right(i_sbrokerAddress,1) = '3' OR right(i_sbrokerAddress,1) = '4'
OR right(i_sbrokerAddress,1) = '5' OR right(i_sbrokerAddress,1) = '6' OR right(i_sbrokerAddress,1) = '7' OR right(i_sbrokerAddress,1) = '8' OR right(i_sbrokerAddress,1) = '9') THEN
sockAddr.sin_addr := SysSockInetAddr(i_sbrokerAddress);
ELSE
sockAddr.sin_addr := SysSockGetHostByName(i_sbrokerAddress);
END_IF
END_IF
sockAddr.sin_port := SysSockHtons(i_uiPort);
wTimeOutValue:=1000;
xResult := SysSockConnect(disocket,SIZEOF(sockAddr));
q_sDiagMsg:='Connect to TCP-Server';
IF (xResult) THEN
q_udistate:=15;
END_IF
IF (TON_TimeOut.Q) THEN
q_udistate:=90;
q_xError := TRUE;
q_sDiagMsg:='Connecting to TCP-Server Timed out';
END_IF
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)