2013-06-30 98 views
1

將數據發送到RS232/USB適配器我想給這個十六進制命令塊。我有以下代碼:通過套接字在Java中

DataOutputStream outToServer = new DataOutputStream(this.clientsocket.getOutputStream()); 
String command5 = "\u001b\u0040\u0026\u240D"; 
outToServer.writeUTF(command5); 
outToServer.flush(); 

正確配置了套接字和serproxy。任何人有想法?

+0

你是如何初始化** clientsocket **的? – Machado

回答

0

writeUTF函數在其字符之前寫入字符串的長度。你可以使用的是純文字:

byte[] bytes = {0x1B, 0x40, ...}; 
out.write(bytes) 
+0

我得到一個錯誤與0xa6(類型不匹配:不能從int轉換爲字節)。我不必使用\ u00語法嗎? –

+0

0xA6必須轉換爲字節'(byte)0xA6',因爲它超出範圍(原因是在Java字節中有符號)。 'uABCD'只是讓你能夠在源代碼中編寫Unicode字符而不用擔心編譯器搞亂了它;現在沒用。 – Joni

+0

謝謝你的回覆。代碼似乎現在工作正常。我用SerialMon檢查了輸出。我的這個rs232控制器的問題似乎有所不同。它不回答,最好什麼都不做。我需要用直接連接的Arduino進行檢查。謝謝 –