クライアントからサーバーにメッセージを送信し、実際に多くのクライアントを同時に接続することができました。しかし、私がやりたいことは、つまり、2 つのクライアントを接続して、それらの間でチャットさせることです。そして、3 番目のクライアントが接続すると、そのクライアントは他の両方のクライアントとチャットを開始します。
今では、クライアント -> サーバー -> クライアントと別の c->s->c とは別にチャットする段階にあります。何が起こるか - client1 を実行すると、すべて問題ありません。次に、client2 を実行するとすべて問題ありませんが、1 番目のクライアントが動作を停止し、2 番目のクライアントで取得した最初のメッセージが、client1 から送信した最後のメッセージになります (ただし、実際にはサーバーから返信されませんでした)。 )。したがって、ストリームに問題があると思います-2つのクライアントが何らかの形でお互いのストリームを取得するということです。サーバーの一部 (関連するもの) は次のとおりです。
HandleClientComm(object client)は送受信操作を処理しています。
そして、送受信操作を処理するクライアント側のコード部分は次のとおりです。
そして、私
An unhandled exception of type 'System.OutOfMemoryException' occurred...
はサーバーに
入るByte[] bData = new Byte[BitConverter.ToInt32(bSize, 0)];
すっごく...ええ、ストリームに何か問題があります(私の意見では)。しかし、サーバーがクライアントのスレッドを正しく区別する方法がよくわかりません。
私はどんな提案も受け付けています。
PSコードが長くなりすぎるため、ここにコードを直接投稿することはしません。