gpt4 book ai didi

c - Nanomsg TCP 握手

转载 作者:可可西里 更新时间:2023-11-01 02:34:14 25 4
gpt4 key购买 nike

我也在 Arduino 部分发布了这个,但这个问题可能更多是由于我对 nanomsg 和一般连接的无知而不是 Arduino 问题造成的。

我正在尝试与使用 nanomsg 的服务器通信使用 Arduino 通过端口上的 TCP 进行通信。我尝试了各种不同的配置(远程连接到 arduino 并让 arduino 连接到服务器,使用不同的 nanomsg 工具)。

我可以让 Arduino 在服务器模式下(运行 WiFiWebServer 示例的一个非常轻微修改的版本)成功读取我使用 cat 发送的文本

sudo cat texttosend > /dev/tcp/192.168.1.50/80

然而,在所有配置中,无论我尝试使用 nanomsg 发送什么文本,我总是得到一串相同的数字。从 arduino 打印字节为十六进制,它们是 0 53 50 0 0 51 0 0。Nanocat(nanomsg 的简单命令行工具)挂起而不是发送和关闭(就像它在发送之前不断尝试确认连接数据)。

我假设这是 Arduino 失败的某种握手,因为客户端连接,读取这些字节,然后关闭并重新启动。在两端(从我的本地计算机到服务器)使用 nanomsg 工作正常。

如果我得到的这些数字是一次握手,我该如何完成它?

Arduino 代码循环部分的内容是

client = server.available();
if (client) {
Serial.println("new client");
while (client.connected()) {
while (client.available()) {
byte b = client.read();
Serial.print(b,HEX);
Serial.write(b);
}
}
}

尝试连接时挂起的 nanocat 命令是

nanocat --push --connect tcp://192.168.1.50:80 --data thismesadsfsdfg

最佳答案

以下文字描述了nanomsg protocol for TCP .

在其中您可以看到为什么要获取指定的字节流以及在要发送的文本之前应该写什么。

关于c - Nanomsg TCP 握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27586541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com