繁体   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