私はサーバとクライアントアプリケーションを持っています。現在実装されている方法は次のとおりです。サーバはTcpListenerを介して新しい接続をリッスンするループをスレッド内に持っています。誰かが接続すると、TcpClientをそのTcpClientを特にリッスンするループに渡し、NetworkStreamを介してそのユーザーとのすべての対話を処理します。マルチスレッド+ソケットアプリケーションの適切な実装
クライアントでは、サーバーに接続するTcpClientがあります。どのIOでもブロックモードにするので、それを別のスレッドに分岐する必要があると私は理解しており、メインスレッドを停止させることはできません。
これまでのところ、正しく理解していますか?いずれかのプログラムのメインスレッドを停止することなく、非同期通信を確実に行うためのより簡単な方法はありますか?
いずれにしても、私の主な質問は:これらのスレッドとソケットがすべて正しく処分されていることを確認するにはどうすればよいですか?プログラムがまだブロッキングモードで終了している場合、プログラムはフリーズしているようです。だから私はソケット上のすべてのIOを中止し、完了した子スレッドの無限ループを教えてください。
これはUnity3dプロジェクトでもあります。
あなたは私に研究をたくさん与えました!ありがとう、私はおそらく非常に非実用的な何かをやっていると思った。 – Dan