如何处理来自用户的意外输入流?

How to handle unexpected input stream from user?

我正在学习基本套接字I/O。我想知道处理无效客户端输入的最佳方法是什么。例如,服务器端的质因数搜索器,但用户向客户端键入一个字符而不是整数。
我们应该一开始就在客户端过滤输入流,还是设计一个服务器来处理无效输入并将消息发送给客户端,然后再发送给用户,或者最安全的方法是同时实现这两者?

I wonder what's the best way to deal with invalid User to Client input for example, a Prime factor searcher on server side but user type a character to client instead of a integer.

服务器应对传入消息缓冲区执行所需的验证。如果它不处理特定的有效负载,它应该知道如何处理此类未处理的消息。事实上,您需要从套接字中读取此类消息,以便读取其他格式正确的消息。例如......假设你有 M1,M2 按顺序进入套接字。 M1 无效,而 M2 是格式正确的受​​支持消息。如果不删除 M1,您将无法处理 M2。因此,在服务器上妥善处理此类消息很重要。

Should we filter input stream at the client side at the beginning or should we design the server to handle invalid inputs?

客户端代码有时可能不受您的控制。如果您可以控制其源代码,那么一定可以。上述规则也适用于服务器响应客户端。它应该遵循与客户预先商定的适当的参与规则。