Java 直接关闭TCP连接正确吗?而不关闭更高级别的层?

Java 直接关闭TCP连接正确吗?而不关闭更高级别的层?,java,tcp,smpp,Java,Tcp,Smpp,例如,我通过smpp协议与SMS中心通信,SMSC通过tcp协议向我发送FIN标志,而不是通过smpp发送unbind。是否正确?解除绑定操作是可选的,此外,它通常由ESME发送到MC,反之亦然 即使MC通常在连接关闭前发送取消绑定,也可能存在无法执行该操作的情况(例如,它检测到某些协议错误,因此无法可靠地发送取消绑定操作)。在这些情况下,MC只会关闭连接,因此在您的客户机中,您也应该处理“裸关闭”的情况。谢谢!问题是,当SMSC发送FIN标志时,我无法在我的java应用程序中恢复。如果您的连接

例如,我通过smpp协议与SMS中心通信,SMSC通过tcp协议向我发送FIN标志,而不是通过smpp发送unbind。是否正确?

解除绑定操作是可选的,此外,它通常由ESME发送到MC,反之亦然


即使MC通常在连接关闭前发送取消绑定,也可能存在无法执行该操作的情况(例如,它检测到某些协议错误,因此无法可靠地发送取消绑定操作)。在这些情况下,MC只会关闭连接,因此在您的客户机中,您也应该处理“裸关闭”的情况。

谢谢!问题是,当SMSC发送FIN标志时,我无法在我的java应用程序中恢复。如果您的连接处于空闲状态,您应该定期发送查询链接数据包。如果MC关闭了连接,您将在java代码中得到一个IOException。也许你能帮忙?