[英]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.