2016-04-01 1 views
0

着信ソケットをソケットサーバーに渡すソケットルーターを1つ持つことは可能ですか?
ソケットを扱うために複数のサーバーを用意したいが、クライアントが接続するためのポートは1つしかないので、これが必要です。そのため、サーバの1つがダウンした場合、ルータは他の正常なソケットサーバにソケットを送信します。
これも可能ですか?または私の問題のための他の解決策?C#ソケットを複数のソケットサーバーに渡すためのソケットルーター

+2

ロードバランサをお探しですか? – CodeCaster

+0

@コードキャスター私は、ソケットを他のサーバーにルーティングするメカニズムをもっと探していましたが、ロードバランサーも機能している可能性があります。記事、コードサンプルなどがありますか? –

答えて

2

はいこれは間違いなく可能であり、非常に普及しています。

基本的に、クライアントに接続する1つのポートで1つのTCPサーバーを実行する必要があります。その後、接続を聞くことができます。接続が確立されると、(選択した)他のサーバーにパケットを再ルーティングできます。

  1. は、彼らが来るよう
  2. が接続を受け入れ、あなたのメインサーバとポートに聞いてください。接続が開かれ
  3. は、別のスレッドでデータを読み取ります。そのデータを取り出し、それを他のサーバーに送信します。

基本的にプロキシです。

+0

OKですが、ソケットはまだメインサーバーに接続されていますが、接続を別のサーバーにルーティングする方が良いわけではありませんか?このトピックに関する記事や本がないように見えるので、どちらの方法でもどうすればいいですか? –

+0

本当に、クライアントに接続先のアドレスを伝えることで接続を再ルーティングできます。実際、それはおそらく実装が簡単でしょう。記事や本については何も提案はありません。私は、ゲームMinecraftのためのJavaベースのプロキシでいくつかの作業を行ってきましたが、**未完成であり、ちょっと混乱しています**。にもかかわらず、あなたがそれを見たいのであれば、それは[ここ](https://github.com/jython234/BouncyBall)です。 – jython234

+0

OK、私はちょっとあなたの答えを編集し、正解とします。簡単な質問ですが、クライアントにどのアドレスを伝えるかによって、IPとポートに接続することを意味します。 –

関連する問題