我也在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 –