我正在創建一個Java應用程序,它需要客戶端與其他客戶端進行通信(發送&接收數據)。 我已經制作了一個簡單的服務器應用程序,以使客戶端通信更容易。 要進行通信,服務器&客戶端使用我創建的名爲「請求」的類。首先,我在想一個簡單的ObjectOutputStream/InputStream將能夠發送/接收我的請求對象,它是!但我已經改變了我的計劃: 現在,我將我的請求對象序列化爲一個字節數組,然後用密碼對它進行封裝。我已經做了解密&反序列化的方法,但我不知道如何讀取與請求對應的字節數組。搜索後,我發現要知道有多少個字節需要讀取,我必須發送一個int字節數組。我還發現存在一個ByteArrayOuputStream/InputStream,是否適合我?以及如何讀取/寫入字節數組的整體? 謝謝!祝你今天愉快!我如何知道我在用Java套接字閱讀的內容?
-3
A
回答
1
在發送側,寫字節數組的長度,然後再實際字節數組:
OutputStream os = ...;
byte[] data = ...;
int dataLength = data.length;
os.write(dataLength >> 24);
os.write(dataLength >> 16);
os.write(dataLength >> 8);
os.write(dataLength);
os.write(data);
在接收側,讀取的前四個字節,重建數據的長度,然後讀出的從輸入流的字節相應的號碼:
InputStream is = ...;
byte[] buf = new byte[4];
is.read(buf);
int dataLength = (buf[0] << 24) + (buf[1] << 16) + (buf[2] << 8) + buf[3];
// read rest of data according to dataLength
注: 上面代碼段不包括必要的完整性檢查!
+0
謝謝你!完美的作品:D – ByProcyx
相關問題
- 1. 使用JAVA套接字服務器閱讀AJAX發佈內容
- 2. 我如何知道Java的cookie的內容?
- 3. XMLResourceParser,我不知道如何閱讀,我有
- 4. 閱讀java中的divert套接字?
- 5. java中的套接字閱讀策略
- 6. 如何知道我的套接字connect是否成功?
- 7. 我應該如何閱讀,直到\ 0/null與套接字?
- 8. 我們如何才能知道在FB中正在閱讀我們的頁面
- 9. RSS閱讀器如何知道我已閱讀哪些項目,以及哪些項目我沒有閱讀?
- 10. 使用lxml,我如何閱讀嵌套元素內的文本?
- 11. 如何閱讀PlaceHolder的文字內容?
- 12. 難道我們在使用套接字
- 13. 如何使用套接字連接讀取內容?
- 14. 如何閱讀Python套接字recv
- 15. ASP.Net ITemplate - 我如何閱讀內部定義的原始內容
- 16. 如何使用套接字發佈未知長度的內容?
- 17. Java - 從套接字通道讀取
- 18. 如何知道我的內容是否佔用整個頁面?
- 19. WPF ValidationRule:如何知道我正在驗證的內容?
- 20. 從套接字讀取響應時,我得到了我之前寫的內容
- 21. 如何閱讀.ppt內容
- 22. 閱讀嵌套模板的內容
- 23. 閱讀嵌套NSMutableDictionaries的內容?
- 24. 我如何知道使用套接字使用UDP關閉了服務器
- 25. 如何知道未接電話是否被用戶閱讀?
- 26. 我如何閱讀Vaadin上傳的文本文件內容?
- 27. 我應該如何閱讀關於endianess的文件內容?
- 28. 如何知道在JMS中使用的套接字?
- 29. 閱讀文件內容利用Java
- 30. 我想知道在Java中
所以你打破了你的設計。所以不要這樣做。 – EJP
@EJP你是什麼意思?我只是加密我的數據,並加密它,我必須使它成爲一個字節數組。 – ByProcyx