最も単純なサーバー
Python には、標準ライブラリの wsgiref を使用するだけで、別のサーバー リスニング ポートを設定する機能があります。
プロキシ サーバーを実装するための 50 行のコード
以前こんな場面に遭遇しました
自分のコンピュータで mongodb グラフィカル クライアントを使用する必要がありますが、mongodb サーバーのアドレスが外部に公開されていないため、最初にホスト A にログインし、次に A から mongodb サーバー B に接続することしかできません。
当初は ssh ポート経由で転送したかったのですが、マシン A からマシン B に ssh 接続する権限がありません。そこで私は Python で自分で書きました。
原理は簡単です。
1. ソケットサーバーを開いて接続リクエストをリッスンします
2. クライアントからの接続要求を受け付けるたびに、転送先アドレスへの接続要求を作成します。つまり、クライアント -> プロキシ -> 転送です。プロキシは、ソケット サーバー (リスニング クライアント) とソケット クライアント (転送要求) の両方です。
3. 2 つのソケット client->proxy と proxy->forward を辞書でバインドします。
4. 送信/受信したデータをそのままこのマップされた辞書に渡します
以下のコード。
エフェクトのスクリーンショットは以下のとおりです。