-2

私はスカイプインスタントメッセジャーのようにしようとしています。私の考えは、クライアントの複数の接続を処理する1つのサーバーを持つことです。私が今持っているのは友達リストなどですが、会話を処理するためにサーバーとクライアントの両方にスレッドを作成したいと考えています。問題は、会話ごとにサーバーと1つのクライアントの間に複数の接続が必要なことです(私は思います)。しかし、私はそれが可能だとは思わない。これを行う別の方法や、サーバーとクライアント間で複数の接続を確立する方法を誰かが持っていますか?

助けてくれてありがとう

PS: 英語は私のメイン言語ではないので、私の文法についてはお許しください。

4

1 に答える 1

1

クライアントがファイアウォールまたはルーターの背後にある場合でも、接続を確立できるように、各クライアントからサーバーへの 1 つの tcp 接続を常に確立するのが最善だと思います。

次に、"create new conversation with ..." のような制御メッセージを含むプロトコルを定義する必要があります。また、サーバーは新しい会話ごとに GUID を生成でき、クライアントは常に 1 つの接続を介して会話 ID と一緒にメッセージを送受信できます。

アップデート:

元の質問に答えるには: はい、クライアントとサーバー間で複数の接続を確立できます。クライアントからサーバーポートへの各接続を開く必要があります。確立されると、それぞれに異なるポートが割り当てられます。各接続を処理するスレッドを作成するか、非ブロッキング呼び出しを使用してすべての接続を処理するスレッドを作成できます。

于 2012-07-06T16:03:19.653 に答える