sockets - 到本地代理的 TCP 套接字连接

标签 sockets tcp connection hivemq

我正在尝试使用 TCP 套接字连接连接到小型服务器(代理)HiveMQ。当我通过 cmd ping 服务器时,我收到消息:

TCP 0.0.0.0:1883 0.0.0.0:0 监听

C中的连接代码是这样的:

addr.sin_family = SL_AF_INET; 地址.sin_port = sl_Htons(1883); addr.sin_addr.s_addr = sl_Htonl("0.0.0.0");

我得到这个错误:

函数 [ConnectionToHiveMq] 中第 [926] 行的错误 [-111]

这表明我的套接字连接出现错误:

rc = sl_Connect(mysock, (SlSockAddr_t *) &addr, sizeof(addr));

有人可以帮我解决这个问题吗?我尝试了许多不同的端口号和 IP:s,但仍然无法正常工作。如果我连接到 Web 上的应用程序客户端,它就可以工作,我可以在其中订阅来自此代码的消息。但是当我尝试使用我的本地(代理)服务器时,它发送...

最佳答案

netstat(8) 中的 0.0.0.0:1883输出 TCP 0.0.0.0:1883 0.0.0.0:0 LISTENING 只是意味着服务器正在监听那个盒子上所有可用接口(interface)上的端口 1883。您仍然需要一个有效的 IP 地址才能连接到它(类似于 192.168.0.1),这将是其中一个接口(interface)的地址(请参阅 ifconfig(8) ),并且是 127.0 .0.1 用于loopback 接口(interface),如果您在同一台机器上。

此外,您的代码行 addr.sin_addr.s_addr = sl_Htonl("0.0.0.0"); 是完全错误的。您需要将 IP 地址的字符串表示形式转换为其整数形式,例如 inet_pton(3) .

关于sockets - 到本地代理的 TCP 套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30079692/

相关文章:

ios - UDP是否适合从iOS传输离散事件

connection - 使用默认端点的 Arangodb Arangoimp

javascript - Sails.js 简单的私有(private)消息传递(发布/订阅和模型)

python - 带有 if 循环的套接字不会给出一致的结果

c++ - SSL_connect() 不适用于 select()

python - 更大的应用程序如何处理潜在的(网络)套接字端口冲突?

Python TCP Payload Duplication - 同时将数据传递到多个端点

python - 使用 Python 通过 TCP 传输文件

php - 为类建立 PDO 连接的正确方法

套接字(Websockets)、端口和协议(protocol)