TCP Server 连接失败的原因可能是什么?

问题描述

我正在尝试使用 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 (将#修改为@)