首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nanomsg TCP握手

Nanomsg TCP握手
EN

Stack Overflow用户
提问于 2014-12-21 03:43:59
回答 1查看 1.1K关注 0票数 3

我还在Arduino部分发布了这篇文章,但是这个问题可能更多的原因是我对nanomsg和连接的无知,而不是Arduino问题。

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

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

代码语言:javascript
复制
sudo cat texttosend > /dev/tcp/192.168.1.50/80

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

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

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

Arduino代码的循环部分的主要内容是

代码语言:javascript
复制
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命令是

代码语言:javascript
复制
nanocat --push --connect tcp://192.168.1.50:80 --data thismesadsfsdfg
EN

回答 1

Stack Overflow用户

发布于 2015-03-16 13:11:43

下面的文本描述了用于TCP的nanomsg协议

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27586541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档