我正在学习基本的套接字I / O.我想知道处理无效客户端输入的最佳方法是什么。例如,服务器端的Prime因子搜索器,但用户键入客户端的字符而不是整数。
我们应该在开始时在客户端过滤输入流还是设计一个可以处理无效输入并向客户端发送消息的服务器,那么对用户或最安全的方式是实现两者?
答案 0 :(得分:1)
我想知道处理无效用户到客户端输入的最佳方法是什么,例如服务器端的Prime因子搜索器,但是用户键入客户端而不是整数字符。
服务器应执行传入消息缓冲区的必需验证。如果它不处理特定的有效负载,它应该知道如何处理这种未处理的消息。事实上,您需要读取套接字这样的消息,以便允许读取其他格式正确的消息。例如...假设您有M1,M2按顺序进入套接字。 M1无效,而M2是格式良好的支持消息。如果不移除M1,您将无法处理M2。因此,在服务器上正常处理此类消息非常重要。
我们应该在开始时在客户端过滤输入流还是应该设计服务器来处理无效输入?
客户端代码有时可能无法控制。如果您可以控制其源代码,那么无论如何。以上规则也适用于响应客户端的服务器。它应遵循事先与客户达成一致的适当的参与规则。