我尝试使用TCP套接字连接连接到小型服务器(代理)HiveMQ。当我通过cmd ping服务器时,我收到消息:
TCP 0.0.0.0:1883 0.0.0.0:0 LISTENING
C中的连接代码如下:
addr.sin_family = SL_AF_INET;
addr.sin_port = sl_Htons(1883);
addr.sin_addr.s_addr = sl_Htonl("0.0.0.0");
我收到了这个错误:
Error [-111] at line [926] in function [ConnectionToHiveMq]
表示我的套接字连接出错:
rc = sl_Connect(mysock, (SlSockAddr_t *) &addr, sizeof(addr));
有人可以帮我吗?我尝试过很多不同的端口号和IP:但是仍然无法正常工作。如果我连接到Web上的应用程序客户端,我可以使用此代码订阅消息。但是当我使用我的lokal(经纪人)服务器进行Itry时,它就意味着......
答案 0 :(得分:0)
netstat(8)
输出0.0.0.0:1883
中的TCP 0.0.0.0:1883 0.0.0.0:0 LISTENING
只表示服务器正在该框上的所有可用接口上的端口1883上进行侦听。您仍然需要一个有效的IP地址来连接它(类似192.168.0.1
),这将是其中一个接口的地址(请参阅ifconfig(8)
),并且127.0.0.1
用于 loopback 接口,如果你在同一台机器上。
此外,您的代码行addr.sin_addr.s_addr = sl_Htonl("0.0.0.0");
完全错误。您需要将IP地址的字符串表示形式转换为其整数形式,例如inet_pton(3)
。