【问题标题】:Client-Server handling errors客户端-服务器处理错误
【发布时间】:2015-03-07 17:45:08
【问题描述】:

我想使用 Java 语言中的 Socket 构建一个客户端-服务器应用程序。客户端使用不同的字节序列与服务器通信。我的问题是处理正确格式的消息的最佳方法是什么,服务器端或两者,客户端和服务器? 谢谢!

【问题讨论】:

    标签: java sockets client server


    【解决方案1】:

    一个初步的想法:共享代码!如果用于生成字节序列的代码在客户端和服务器上是相同的(相对于有两个不同的实现来做同样的事情)。

    【讨论】:

    • 用户必须向服务器引入不同的请求格式(例如:START 40),每个请求都有一个特定的 4 字节标头,但是如果键入不存在的命令,我不知道是否最好在Client端控制消息或者发送到Server等待报错消息。
    【解决方案2】:

    您将始终必须检查到达服务器的消息的正确性和完整性。 总是。因为人们可以总是对协议进行逆向工程并开发自己的客户端。因此,无论您在客户端中进行的任何健全性检查,它们都可以被绕过。

    您可能希望在适用的情况下在库中进行健全性检查,并且不仅在服务器中而且在客户端中使用该库。根据您的应用程序,首先防止在客户端中生成疯狂的消息可能是有意义的。但正如我所说,这不能替代服务器端检查。

    【讨论】:

    • 是的,这是我的问题。在Server端总是需要检查错误。如果发生这种情况,对客户端进行相同的检查是否有意义?如果出现错误,连接将结束。优点是客户端可以控制这一点,避免向服务器发送错误消息。
    • 正如我已经在答案中解释的那样,这可能是有道理的,但这实际上取决于您的用例。
    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 2011-01-03
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2021-02-11
    • 1970-01-01
    相关资源
    最近更新 更多