1

ポート 5888 (ダミー ポート) でリッスンするカスタム TCP サーバーがあります。プロキシ サーバーは着信接続をリッスンします。プロキシが特定のページの HTTP リクエストを受信すると、ポート 80 でメイン サーバーに中継する必要があります。他のページ リクエストの場合、プロキシはポート 8081 でメイン サーバーにデータを送信する必要があります。

ポート 80 は HTML ページのサービスに使用され、ポート 8081 はクライアントへのデータのストリーミングに使用されます。

プロキシで着信接続を受信し、クライアントからデータを読み取ることができます。データを読み取った後、データを送信するためにメイン サーバーのどのポートに接続するかを決定できます。

クライアントからメイン サーバーにデータを送信するために 2 つのポートに接続する方法を決定するのに苦労していますか?

4

3 に答える 3

1

その場合、異なるポート上の同じ IP への 2 つのソケット接続オブジェクトが必要になるか (これは合法です)、または対処する必要があるポートに従って再接続する 1 つの接続オブジェクトが必要です。

接続を切り替える頻度によっては、後者のバージョンのオーバーヘッドが大きくなる可能性があります。さらに、最初のバージョンでは、両方のポートに事実上同時にデータを送信できます。

于 2012-10-01T13:49:17.310 に答える
0

クライアントはポート 5888 でプロキシ サーバーに接続されているため、どの実サーバー (Web またはストリーミング) からデータを取得しても、ポート 5888 のみを使用してクライアントにデータを提供します。

あまり実用的な解決策ではないようです。ここでは、あるポートが別のポートからのストリーミングを制御する、一種の制御ポートとデータ ポート構造を実現しようとしていると想定しています。

2 つのサーバーからデータを取得するには、2 つのソケットを作成するだけで十分です。ここでは、単一のポートを使用して html とストリーミング データの両方をクライアントに提供するため、クライアントが理解できるプロトコルを手動で作成する必要があります。

于 2012-10-01T14:02:27.313 に答える
0

プログラムをサーバーと考えるのをやめる必要があります。接続を受信し、データを読み取り、それを送信するポートを決定したら、ギアをシフトして、クライアントとしての操作を開始します。

ポート 80 または 8081 で「localhost」への新しい接続を開き、元のクライアントであるかのように、受信したデータを再送信するだけです。

于 2012-10-01T13:55:25.120 に答える