ソケットで接続を受け取り、ユーザーを認証して、それに一致するユーザーのクラス(認証に指定された情報を持つ)にソケットを「送信」し、追加するサーバーを構築しようとしています。処理される同じクラスの(そのクライアントの複数のデバイスの)スレッドプール(情報の交換、他のものの更新など)。c#別のクラス内の別のソケットにソケットを移動しますか?
別のクラスの中の別のソケットに移動する必要があります。次に、そのクラスで開いているスレッドが処理します。私はそれを認証するために接続を受け入れるならば、そのソケットはその接続を持っています、私は特定のクラスの特定のソケットでそれを受け入れることができませんでした。今、私はスレッドを持っています。何もできません。なぜなら、このスレッドを使用するクラスを伝えることができないからです。クラスのスレッドでそれを使用すると、接続を受け入れるために使用する次のソケット同じクラスで占められているものになります。私は巨大な配列を使用して受け入れられたソケットを格納し、そのソケット番号がそれらのソケット番号であることをクラスに伝えることができましたが、それだけでなく、束縛されたソケットも同様に動作します。
誰でもこれを行う方法はわかっていますか、別の方法をとるべきですか?ありがとうございました。
私はあなたが書いていることについて混乱しますが、通常はこれを行います: 'TcpListener'を使い、クライアントを非同期で受け入れます。新しいクライアントが接続すると、受け入れられたクライアントソケットを処理する新しいスレッドが生成され、より多くのクライアントに対して非同期で待機するようになります。リスニングソケットはこれによってブロックされません。非常に単純な例がここにあります:https://msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspx –