gpt4 book ai didi

java - 简单的 Java TCP 套接字协议(protocol)

转载 作者:行者123 更新时间:2023-12-01 14:32:16 25 4
gpt4 key购买 nike

我正在尝试找到一种可靠的方法来发送遵守定义协议(protocol)的控制消息,以便告诉服务器他将收到什么类型的数据。例如,我想发送一条纯文本消息来调用远程方法:

#METHOD1#CLOSE#

或者我想将序列化对象发送到服务器:

#OBJECT# .......here comes the serialized object data....#CLOSE#

所以基本上我只想发送完全独立的字符串控制消息接下来的流内容。

通过将输入流包装到 Scanner 对象中,我可以从输入流中提取字符串,但如果该流是序列化对象,则此后无法恢复该对象。感谢您的帮助。

最佳答案

您可以使用 Base64 之类的方案(例如使用 Apache 的库)将对象从字节编码为字符串,然后再编码回来。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
new ObjectOutputStream(baos).writeObject(object);
String serializedObject = Base64.encode(baos.toByteArray());

byte[] bytes = Base64.decode(serializedObject);
ByteArrayInputStream baos = new ByteArrayInputStream(bytes);
Object object = new ObjectInputStream(baos).readObject()

关于java - 简单的 Java TCP 套接字协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16776992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com