我也在Arduino部分发布了这个问题,但这个问题可能是由于我对nanomsg和连接的无知而导致的,而不是一个Arduino问题。Nanomsg TCP握手
我正在尝试与使用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
你试过在你的命令中加入'--format ascii'吗?或者把数据放在'''',比如''message“'中? – SSC
我试过发送各种消息(引号,没有引号,随机字符串等),但没有什么改变Arduino收到的。格式化标志仅用于接收数据,我无法控制nanocat如何发送数据(来自我知道的很少的数据)。 –
原来这是nanomsg的一部分。 http://www.freelists.org/post/nanomsg/Status,242 –