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