簡體   English   中英

在java中通過TCP發送混合字符串和字節

[英]Sending Mixed String and bytes over TCP in java

我有一個 TCP 套接字客戶端向帶有 OutputStream 的服務器發送請求。 我需要發送這樣的例子:


REQ OP 文件大小數據


服務器使用 in.readLine() 接收信息,需要使用接收到的數據創建一個新的 .txt 文件。 我的問題是我使用拆分為令牌來分析信息,但我無法將“數據”字符串轉換為字節數組,因為我猜有些字節丟失了。

如何在一行/命令中將數據發送到服務器(因為我需要將字符串與字節數組混合)而不會丟失任何數據?

您可以使用DataOutputStream ,它允許您通過流發送不同的類型。

初始化 Stream 后,您可以使用DataInputStream在服務器上接收數據(具有不同類型)。

也許這不是 One-Liner,但流並非設計為具有“單行”數據。

只需使用 dataOutputStream.writeInt()/.write(bytes) 發送它們,或者如果您想發送 Stream writeUTF()。

在 dataInputStream 上,您當然需要使用 readInt()/.read(bytes) 或 readUTF() 。

編輯:使用 TCP 流驗證您沒有“丟失”數據,因為如果有字節丟棄(不像 UDP),連接將被關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM