【问题标题】:Java how to marshall code on a network messageJava如何在网络消息上编组代码
【发布时间】:2021-11-19 04:38:50
【问题描述】:

这是一个有服务器端和客户端的聊天程序。用户向服务器发送一条消息,指示用户想要做什么。我被要求为每个消息标识符编组和解组代码。我目前有一个枚举器,其中包含每条消息以及 Server 和 Client 类中的 id 值。我还有一个由每个消息标识符类实现的接口。有 7 个消息标识符:REGISTRATION_MESSAGE、REGISTRATION_RESPONSE、DEREGISTRATION_MESSAGE、REQUEST_REGISTERED_USERS、RESPONSE_REGISTERED_USERS、BROADCAST_MESSAGE 和 WHISPER_MESSAGE。总而言之,我相信如果我能弄清楚第一条信息,我可以很容易地完成其他信息。我正在努力理解这个概念,以及编组和解组的诀窍。目前,这是我目前正在努力的代码的 sn-p。 code snippet

我从来没有弄乱过字节,所以仅此一点就让我感到困惑。哦,而且我想显示我的界面interface code snippet 以及我的枚举器声明可能会很有用(在服务器和客户端类中,但为了向您展示我将只显示一个,因为它们是同样)enumator code snippet

【问题讨论】:

  • 哦,因为你是新来的:请不要发布代码图片。将代码插入您的问题中,以便我们可以更轻松地复制/粘贴/复制它。最好的办法是提供一个最小的可运行示例,以便我们可以从那里获取它。

标签: java networking server marshalling unmarshalling


【解决方案1】:

在 Socket.InputStream 中创建一个 DataInputStream,它可以让你读取 short、int、long 等。使用 short 或 readUTF 读取消息类型的序数/字符串,然后在其上使用switch,让每个消息类型实现从那里处理自己的 I/O(最好在单独的方法中完成)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    相关资源
    最近更新 更多