http.server に基づく LAN サーバーの構築プロセスの分析

http.server に基づく LAN サーバーの構築プロセスの分析

皆さんはこのような状況に遭遇したことがあるでしょうか。プロジェクトや研究開発を行う際に、緊急にファイルを別のコンピューターに転送したいのですが、USBドライブが見つからないため、QQ、WeChatなどのソーシャルソフトウェアにログインするか、電子メールなどのツールを使用して転送する必要があります。これは非常に面倒で苦痛です。 Python は万能であり、子供を産むこと以外はすべてできると言われています。そこで今日は、この問題を解決する簡単な方法を紹介します。Python で http.server を呼び出して LAN サーバーを構築することで、この問題は非常に簡単になります。

1.

1 行の Python コマンドでローカル エリア ネットワークを構築する方法は、実はとても簡単です。Python では 1 つのコマンドで実行できます。 Python の公式マニュアルによると、HTTPServer は socketserver の TCPServer のサブクラスです。 HTTP ソケットを作成してリッスンし、リクエストをハンドラーにディスパッチします。

Python 3.7 では、http.server は 5 つのパラメータを提供します。次のヘルプ コマンドを呼び出すと、次の内容が表示されます: python -m http.server --help

上の図からわかるように、位置パラメータとオプションパラメータが含まれています。

  • 位置パラメータポート - HTTPサーバーによって指定されたポートを参照します。デフォルトは8000です。
  • オプションパラメータ -h/--help——ヘルプ情報を取得するために使用します
  • --cgi——サーバーはCGIモードです
  • --bind/-b ADDRESS——バインドIPアドレス、ADDRESSはIPアドレス
  • --directory/-d DIRECTORY - ディレクトリを指定します。デフォルトは現在のディレクトリ(つまり、コマンドラインが実行されるディレクトリ)です。簡単に言えば、現在のサーバーはディレクトリへのアクセスを提供できます。

2. 操作方法

ローカル サーバーを構築するためのコードは非常にシンプルです。コマンド ラインで次のコードを実行するだけです。

python -m http.server 8080

上記のコードは、http サーバーを起動するために使用されます。デフォルトの IP は、コンピューターのローカル ワイヤレス IPv4 ネットワークであり、デフォルトのディレクトリは、コマンド ラインが実行されるディレクトリです。パラメータを変更する場合は、03 種類の可変パラメータを呼び出します。

原理の説明はここまで。次は実践です。編集者は自分の携帯電話のホットスポットを使って、Ubuntu、Windows、モバイル端末でテストしました。

1) まず、ローカルIPを取得する必要があります

Windows プラットフォームでは、ipconfig を通じて IP アドレスを取得できます (Linux プラットフォームでは、ifconfig -a を通じて IP アドレスを取得できます)。選択された IP アドレスは、ワイヤレス LAN アダプタ WLAN の IPv4 アドレスであることに注意してください。

2)。

上記のコマンドでサーバーを起動した後、取得した IP とポートに従ってブラウザに http://192.168.43.136:8080/ と入力するとサーバーにアクセスできます。すごいと思いませんか? 次に、さまざまなプラットフォームでテストし、PC で試してみましょう。

携帯電話でテストする

その他のウィンドウ

3.

サーバーのディレクトリを変更します。ファイルディレクトリを変更するために、エディターは D ドライブをアクセス可能なドライブに変更します。コマンドは次のとおりです。他のパラメータの使用方法も同様です。 python -m http.server 8080 -dd: アクセスしたディレクトリが変更されたことがわかります。

今日は、http.server を使用してサーバーを構築するヒントの共有は以上です。何か新しいことを学びましたか? Python に付属するこの小さな関数を使用すると、LAN 内のすべてのデバイスがアクセスできるシンプルな http サーバーをすばやく構築できます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • [Asp.Net Core] Blazor Server Sideで画像検証コードを実装する
  • [Asp.Net Core] Blazor サーバーサイドに関する簡単な説明
  • Ant Design Blazor コンポーネントライブラリのルーティング再利用マルチタブ機能
  • HTTPのヘッダー情報の詳細な説明
  • Golangはhttpのサーバー側とクライアント側を実装するだけです
  • IOSはCocoaHttpServerを使用して携帯電話上にローカルサーバーを構築します
  • Golang は圧縮ファイルのダウンロード機能を提供するための http サーバーを実装します
  • Golang で http.FileServer を使用して静的ファイルを返す
  • golangのhttpserverのエレガントな再起動方法の詳細な説明
  • Blazor Server アプリケーションで HTTP リクエストを実行する

<<:  Javascript 共通高階関数の詳細

>>:  IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ

推薦する

vue.js 動的コンポーネントの詳細な説明

:動的コンポーネントv-bind:is="component name" を使用...

MySQLサービスが起動しても接続されない問題の解決策

mysql サービスは開始されていますが、接続できません。この問題を解決するにはどうすればよいでしょ...

MySQL データベースの文字化け問題の原因と解決策

序文データベースのデータを表示すると、文字化けした文字が表示されることがあります。実際、どのようなデ...

MySQL インポート csv エラーの 4 つの解決策

これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...

特定の MySQL テーブルの完全データと増分データをメッセージ キューに同期する - ソリューション

目次1. 当初の需要2. 解決策3. 運河の導入と設置運河の仕組み建築インストール4. 検証1. 当...

HTML でフォーム入力やその他のテキスト ボックスを読み取り専用にして編集不可にする方法

場合によっては、フォーム内のテキスト ボックスを読み取り専用にして、ユーザーがその中の情報を変更でき...

表面的なウェブデザイン

<br />私はいつもYahooのウェブデザインが素晴らしいと信じてきました。しかし、こ...

フィールドを結合するSQL関数

最近、関連テーブル内のすべてのフィールドをクエリし、それらを 1 つのフィールドに再グループ化する必...

el-table カプセル化に基づくドラッグ可能な行と列、および選択列コンポーネントの実装

効果環境が必要ビュー要素UIドラッグアンドドロッププラグインSortable.js必要な構成プロパテ...

仕事の効率を上げるJS略語スキル20選

目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...

Docker プライマリ ネットワーク ポート マッピング構成

ポートマッピングDocker コンテナを起動する前にポート マッピングを行わないと、コンテナ外部のネ...

Tencent Cloud Server Tomcat ポートにアクセスできない場合の解決策

最近、Tencent Cloudを使用してサーバーを設定しました。使用中に、tomcatポートにアク...

JSデータ型検出のさまざまな方法の概要

目次背景データ型を決定する方法は何ですか? 1. typeof を使用して基本データ型を決定します。...

CSS で画像アダプティブ コンテナを実装するいくつかの方法 (要約)

多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...

数千万のデータを扱うMySQLのページングクエリのパフォーマンスを最適化する

MySQL のデータ量が多い場合、制限ページングが使用されます。ページ数が増えると、クエリの効率が低...