与lokal代理

时间:2015-05-06 14:29:09

标签: sockets tcp connection hivemq

我尝试使用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时,它就意味着......

1 个答案:

答案 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)