我有一台服务器正在从多个客户端发送/接收数据,每个客户端都连接到一个单独的服务器线程。此数据通过DataInputStreams和DataOutputStreams发送,目前完全由字符串组成。我想发送基于int的信号来指示客户端行为应该更改,但该数据当前也以字符串格式发送。
根据我目前的理解,TCP会自动重新发送任何丢弃的数据包,但我也希望能够处理数据损坏。如果我调用DataOutputStream.writeUTF()来从客户端向服务器发送消息,那么如果在后台进行任何校验和检测以确保正确传输完整的消息怎么办?我怎么能发现问题?
比如说,在DataInputStream的服务器代码中捕获IOException并手动要求客户端重新发送消息(因此应该以某种方式标记ID)是处理这种情况的正确方法吗?