2013-07-16 41 views
1

我無法向服務器發送有效請求。 我有這個協議描述,但我不明白我必須發送socat到服務器的東西。我必須將哪些參數發送到服務器?

必須始終以飽滿傳輸,即使命令沒有 要求任何參數。

命令這是一個單個字母,其大小寫很重要(例如,命令'A'和'a'是 ,實際上有很大不同。它的大小是8位。

param 1這是一個16位數字參數。它是網絡字節順序,主要用於指定KNX設備地址或數據長度。

我的問題來自param。我必須發送一個具有空值的16位數字參數。 我該怎麼辦呢?

回答

3

通常,「空值」僅表示您發送零。

如果服務器套接字是sock,那麼這將發送16位:

send (sock, "\0\0", 2, 0); 
+0

事實上,因爲一個字符串文字總是有附加一個空字符,'發(襪子,「\ 0」,2 ,0)'就足夠了。但是將整個消息(頭文件,命令和參數)構建到單個緩衝區然後「一次發送」整個事件不是更好嗎? –

+0

@ElchononEdelson:是的,它會更好,但OP沒有具體說明放在那裏,無論如何,我想保持簡單。 – ams

相關問題