プロジェクトのサーバー側にノンブロッキング IO システムを作成しています。実際の実装は重要ではありません (気にするなら Java NIO です) が、ソケット通信をプログラミングする際に細心の注意を払わなければならない微妙な問題に非常に戸惑っています。私の知識は多くの分野で不足しているため、物事が「うまくいかない」可能性があるすべての方法を想像することさえできません...「半分閉じた」接続、予想よりもはるかに多くのデータを送信する接続など.
私が探しているのは、特定の動作の接続とテストのプロセスを自動化することにより、システムの堅牢性をテストするのに役立つある種のクライアント側ツールです。接続を開いたり、使用したり、閉じたりするさまざまな方法をシミュレートするための、さまざまな種類のオプションを備えたある種のツール。おそらく、一度に数メガバイトの意味不明なメッセージを送信したり、「意味をなさない」ことを試みたりすることができます。これらはすべて、コードが壊れる可能性のあるランダムでまれなことをテストできるようにするためです。 「壊れた」接続を認識せずに閉じます。
ツールのようなものはありますか?別のアプローチとして、Java コード/単体テストが考えられます。何かご意見は?本当にありがとう!