私は現在、C# で記述された TCP マルチスレッド サーバーとクライアントに取り組んでいます。私は Google を調べていて、5 つ以上の例を試しましたが、すべての要件を満たすものはないようです。私はネットワーキングに詳しくないので、誰かが私を正しい方向に向けることができれば幸いです.
必要な要件は次のとおりです。
- マルチスレッド、複数のクライアントを処理できるサーバーが必要ですが、それらのクライアントは相互に通信する必要はありません。
- クライアントがサーバーに接続した後、サーバーがすべてのクライアントを削除するまで、クライアントは相互にメッセージを送信し続ける必要があります。サーバーは各クライアントを識別する必要があります。通常、クライアントは自分自身でサーバーから切断する必要はありません。
- 切断通知、Google で見つかったこれらの例のほとんどにはこの機能がありません。サーバーがユーザーに通知できるように、接続されたクライアントがいつ切断されるかをサーバーに知らせる必要があります。
実際に私が見つけた最も近い例はこれです: http://www.codeproject.com/Articles/22918/How-To-Use-the-SocketAsyncEventArgs-Class
しかし、私が直面している問題は、メッセージがクラス Token 内にあることです。これらのクラスをすべて、メイン アプリケーションである Window Form Application に含めました。クライアント ID、クライアント ステータス、またはクライアントへのアクションなどの情報は、フォームで実行されます。これらの変数を Token クラスからフォームに取り込む方法がわかりません。
これは私の目的に合うと思われる別の例です: http://www.codeproject.com/Articles/2866/Multi-threaded-NET-TCP-Server-Examples
しかし、フォームが表示されなくなったため、変更方法がわかりません。
手伝ってくれてありがとう。