Java Server/Client 中的编组和解组

Marshalling and Unmarshalling in Java Server/Client

我有一些关于如何设置具有编组和解组功能的服务器的问题。我的导师给了我代码来实现编组和解组,以及通过 TCP 发送和接收数据。 Here is my code.

首先,因为我需要为服务器和客户端send/receive 我假设我需要文件(TCPSender.java,TCPReceiver.java, 和 WireFormatWidget.java - marshalling/unmarshalling class) 在与客户端和服务器相同的源路径中。根据代码,这似乎就是我需要做的全部。我似乎不必创建任何包。这样看起来对吗?

第二个,因为我的server/client(s)会运行宁一个marshalling/unmarshallingclass,我可以输出通过字符串传输数据,然后 WireformatWidget 将在控制台打印输出之间转换它。

最后 我不是 100% 确定通过字节数组发送的价值,有人可以给我一个 运行-down 的原因吗?另外,也许将我发送给他们可信赖的来源以了解他们?我目前正在查阅 Java 文档,这很有帮助,但我想要一些更适合我的应用程序的内容。谢谢!

我认为您的客户端和服务器之间需要 Widget 到 read/write。

如果你想让 Java 自动控制编组/解组,我建议使用 Externalizable if you want to control the marshalling / unmarshalling. There's also the marker interface Serializable

至于为什么你可能需要将 Widget 的状态转换为 byte[];通常,您可以将它们写入 and/or 从某个地方(如磁盘或远程客户端)读取它们。基本上,它是一种以编程方式恢复实例状态的机制。其他此类机制涉及生成人类可读表示(例如 XML and JSON)。

最后,为了更快更好地帮助,请在您的问题中包含您的代码。将其设为站外图像的 link 使其不太可能被读取。