目次
ネットワーキングの概念の概要
1. 分散システムにおけるネットワーキングとその重要性
2. ネットワーキングの主要な概念
2.1. IPアドレス
2.2.ポート
2.3.プロトコル
2.4.ソケット
3. OSI モデルと TCP/IP スタック
3.1. TCP/IP スタック
3.2. OSI モデル
ソケットプログラミングの基礎
1. Python でのネットワークの基礎としてのソケット プログラミング
2. マシン間の通信のエンドポイントとしてのソケット
3. 例: 基本的なネットワーク通信用のソケットの作成と使用
TCP/IP の使用
1. 伝送制御プロトコル (TCP) と通信におけるその役割
2.例: Python での TCP クライアントおよびサーバー アプリケーションの作成
3. TCP ソケットを使用したシンプルなチャット アプリケーションの構築
まとめ
参考
ホームページ バックエンド開発 Python チュートリアル 高度な Python の概念 - Python を使用したネットワーキング

高度な Python の概念 - Python を使用したネットワーキング

Dec 09, 2024 pm 03:28 PM

デバイスがどのようにインターネットに接続されているのか疑問に思ったことはありますか?あるいは、企業はどのようにして地域間で情報をシームレスに共有しているのでしょうか?これらすべては、ビジネス戦略の一環としてコンピュータ ネットワークを使用して達成されます。これにより、インターネット上のネットワーク内のさまざまなアプリケーションやデバイス間で通信を確立し、共同作業し、リソースを共有することができます。ネットワーキングとソフトウェア アプリケーションやその他のさまざまなテクノロジの統合により、ワンクリックで友人や他の人と連絡したり、何かを共有したりできるようになりました。 Python では、ネットワークはデバイスと外部リソース間の対話を可能にする基本的な概念です。 Python には、一般的なネットワーク用の「ソケット」や HTTP 通信用の「リクエスト」などのネットワーク機能をサポートする組み込みモジュールが多数含まれています。
したがって、この記事では、Python の基本概念から高度な概念まで、実践的な例を使用してネットワーキングについて説明します。

ネットワーキングの概念の概要

1. 分散システムにおけるネットワーキングとその重要性

ネットワーキングには、有線ケーブルまたは無線ネットワークを介して複数のコンピューターやデバイスを接続し、インターネット上でデータを交換したりリソースを共有したりすることが含まれます。複数のデバイス間の通信が可能になります。ご存知のとおり、分散システムとは、多数のクライアント、ハードウェア デバイス、プロセスが接続されてリソースを共有し、通信するシステムです。したがって、ネットワーキングと分散システムは大幅に相互接続されています。これらは、システムの効率と生産性を向上させるために、ストレージ、リソース共有、電子通信を容易にするインフラストラクチャを提供します。

2. ネットワーキングの主要な概念

私たちが日常生活で使用する主要なネットワーキングの概念は次のとおりです。

2.1. IPアドレス

IP アドレスは、ネットワーク上のデバイスを一意に識別します。インターネットに接続するデバイスがある場合は、IP アドレスが必要です。 IP は インターネット プロトコル の略です。これは、ネットワーク内のコンピュータまたはデバイスの一意の番号または識別子です。すべてのデバイスには固有の番号があり、ネットワーク内の他のデバイスと区別されます。例:

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

注:

IP アドレスは、インターネット プロトコルを使用してネットワーク上で通信する各コンピュータを識別する、ピリオドで区切られた一意の数字の文字列です。

2.2.ポート

ポートは、ネットワークでデバイス上の特定のサービスまたはプロセスを指定するために使用される数値識別子です。ネットワーク上のデバイスの位置を識別する IP アドレスとは対照的に、ポートを使用すると、同じデバイス上で複数のサービスを同時に動作させることができます。これにより、データが正しいアプリケーションまたはプロセスに確実に送信されます。これらのポートの範囲は 0 ~ 65535 で、特定のプロトコル用に一定のスケールが予約されています。例:

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

2.3.プロトコル

ネットワーク プロトコルは、ネットワーク デバイス間の通信のための一連の手順と実践です。データのフォーマット、送信、受信の方法を定義します。例には、HTTP、FTP、SMTP、DNS などがあります。プロトコルは、アプリケーション層 (HTTP)、トランスポート層 (TCP)、ネットワーク層 (IP) など、OSI モデルのさまざまな層で動作できます。

2.4.ソケット

ソケットは、複数のデバイス間でデータを送受信するためのネットワーク エンドポイントです。これには、IP アドレスとポート番号の組み合わせが含まれます。ソケットには主に 2 つのタイプがあります。1 つはコネクション指向の TCP 接続用の SOCK_STREAM、もう 1 つはコネクションレス型の UDP 接続用の SOCK_DGRAM です。ソケットを使用すると、Web サーバーや電子メール サーバーなどのさまざまなネットワーク サービスを実装できます。

3. OSI モデルと TCP/IP スタック

デバイスやコンピューターが相互に対話し通信できるように、インターネット経由でデバイスやコンピューターを接続する方法を示す特定のモデルが定義されています。ネットワークを定義するには 2 つの主要なモデルがあります。 OSI モデルまたは TCP/IP スタック。それぞれの概要を簡単に見てみましょう:

Advanced Python Concepts - Networking with Python

3.1. TCP/IP スタック

TCP/IP スタックは、インターネット上のネットワーク デバイスを相互接続するために使用される一連の通信プロトコルであり、信頼性の高いデータ送信と通信を保証します。これは、コンピュータがどのように対話できるか、またそれらのシステムをどのように設計するかに関する一連の手順です。機能を理解するために5つの層に分かれています。各層にはそれぞれの機能があり、アプリケーション層、トランスポート層、ネットワーク アクセス層、データ リンク層、および物理層です。 TCP/IP スタックは、ネットワーキング通信の理論的な理解を提供する OSI モデルとは対照的に、現実世界におけるネットワーキングの実践的な実装を提供します。さらに、トランスポート層は信頼性の高いデータ送信のための機能を提供し、ネットワーク アクセスは正しい IP アドレスとデータ パケットのルーティングなどを保証します。

3.2. OSI モデル

TCP/IP と同様に、OSI モデルも複数のデバイスにわたるネットワークの設計に使用されます。これは、7 つの異なる層でネットワーク プロトコルを理解して実装するための一連の手順で構成される概念的なフレームワークです。 TCP/IP と同じレイヤーを共有しますが、追加のレイヤーもあります。これらには、アプリケーション、プレゼンテーション、セッション、トランスポート、ネットワーク アクセス、データ リンク、および物理層が含まれます。具体的には、OSI と TCP/IP の主な違いは、TCP/IP のアプリケーション層に組み込まれた 2 つの追加層です。

ソケットプログラミングの基礎

1. Python でのネットワークの基礎としてのソケット プログラミング

ネットワーキングには、2 つ以上のデバイスが接続され、それらのデバイス内で通信が可能になります。 Python では、ソケット プログラミングは基本的かつ中核となるネットワーク作成メカニズムです。ソケットプログラミングの場合、ソケットモジュールをインポートする必要があります。開発者はソケット モジュールを使用して、TCP および UDP 通信用のソケットを生成、構成、管理できます。このモジュールには、ソケットを作成し、ソケットを相互に関連付けるために必要な組み込みメソッドが多数含まれています。使用されるいくつかの重要なメソッドは、ソケットの作成に使用されるsocket.socketです。このソケットはクライアント側とサーバー側の両方で使用されます。また、通信を受け入れるには、socket.accept メソッドを使用します。

注意

TCP は、Transmission Control Protocol(伝送制御プロトコル)の略で、信頼性の高いデータ転送を保証する接続指向のプロトコルです。 UDP はユーザー データグラム プロトコルであり、信頼性よりも速度を優先するコネクションレス型プロトコルです。

2. マシン間の通信のエンドポイントとしてのソケット

ソケットは、データの送受信に使用されるネットワーク エンドポイントです。デフォルトでは、1 つのネットワークに 2 つのソケット (通信デバイスごとに 1 つずつ) があります。これらのソケットは、IP アドレスとポート番号を組み合わせます。さらに、使用されるポート番号に基づいて、1 つのデバイスに N 個のソケットを持つことができます。プロトコルの種類ごとに異なるポートが使用可能です。たとえば、HTTP はポート 80 を使用します。このエンドポイント メカニズムを通じて、開発者はさまざまなネットワーキング シナリオで正確かつ信頼性の高いデータ交換を保証できます。

3. 例: 基本的なネットワーク通信用のソケットの作成と使用

Python プログラミングの基礎であるソケット プログラミングが何であるかを理解したので、コード エディターに移動して、ソケット プログラミングを作成する方法を見てみましょう。接続を確立するには、クライアント側とサーバー側で 2 つの異なるファイルを作成する必要があります。

server.py

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Advanced Python Concepts - Networking with Python

client.py

HTTP uses port 80  
HTTPS uses port 443
ログイン後にコピー
ログイン後にコピー

Advanced Python Concepts - Networking with Python

TCP/IP の使用

1. 伝送制御プロトコル (TCP) と通信におけるその役割

TCP は、伝送制御プロトコルとしても知られ、TCP/IP モデル内のトランスポート層プロトコルです。これは、インターネット上でデータを送信する方法を決定する一連のプロトコルと手順で構成されます。通常、データがファイルとして送信される場合、データは個々のパケットに分割されます。パケットが各パケットに固有の番号を持つ宛先に到着したとき。それを使って組み立てることができます。さらに、一部のパケットが欠落している場合、TCP はそれらのパケットを確実に再送信します。これが、TCP がハンドシェイク プロセスを通じて通信を確立し、受信したデータを確認し、パケットの正しい順序を維持し、データの整合性と配信を保証することによって失われたパケットを再送信するため、TCP を信頼できる通信プロトコルと呼ぶ理由です。

2.例: Python での TCP クライアントおよびサーバー アプリケーションの作成

サーバーはクライアントの要求を待つソフトウェアであり、クライアントはサーバーに対してリソースを要求します。ソケット プログラミングは主にクライアント/サーバー アーキテクチャ向けに実装されます。ここでは、クライアントがメッセージを送信し、サーバーがそのメッセージに応答し、TCP のソケット モジュールを使用してその要求に適切な応答を返す、クライアントとサーバーを作成する例について説明します。クライアント モデルとサーバー モデルの両方を設計しましょう。

Advanced Python Concepts - Networking with Python

server.py

IPv4: 32-bit address: 192.168.1.1 
IPv6: 128-bit address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Advanced Python Concepts - Networking with Python
client.py

HTTP uses port 80  
HTTPS uses port 443
ログイン後にコピー
ログイン後にコピー

Advanced Python Concepts - Networking with Python

3. TCP ソケットを使用したシンプルなチャット アプリケーションの構築

TCP ソケットを使用して Python で簡単なチャット アプリケーションを作成してみましょう。サーバーは受信コマンドをリッスンし、クライアントはそのサーバーに接続してメッセージを送受信します。 Python 組み込みモジュール (ソケット) を使用してチャット ルームを構築します。したがって、クライアントとサーバーなどの各側のコードを個別に記述する必要があります。

server.py

import socket #Import library

#Create a socket object and then define two arguments first one specifies the IP address
#and second indicate the use of a TCP socket.
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Prepare to receive connections by binding it to the IP address and port
soc.bind((socket.gethostname(), 1042))
#Listen to the connection
soc.listen(5)

while True:
     #Set client socket and address and make a connection
     clt, addr = soc.accept() 
     print(f"Connection Established to address {addr}")
     msg = "Message Received and the message is ->"
     clt.send(bytes(msg + "Socket Programming in Python", "utf-8"))
ログイン後にコピー

Advanced Python Concepts - Networking with Python

client.py

import socket #Importing the module

#Create a socket object and then define two arguments first one specifies the IP address
#and second for indicating the use of a TCP socket.
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Set the connection with the port number and hostname
soc.connect((socket.gethostname(), 1042))
#Set the bytes of the message how much you want to receive
msg = soc.recv(100)
print(msg.decode("utf-8"))
ログイン後にコピー

Advanced Python Concepts - Networking with Python

まとめ

ネットワークは、コンピューターサイエンスとプログラミングにおける重要な概念です。オフィスで仕事をしている場合でも、チームとファイルを共有している場合でも、人間の問題のほとんどは解決されます。あるいは、他国の親戚に連絡してください。要約すると、私たちは Python を使用したネットワーク基盤の確実な導入に焦点を当てました。 ネットワーク制御とモデル、クライアントとサーバーのアーキテクチャソケット ライブラリを使用した実践例などの重要なトピックを学びました。このライブラリは、分散システムの安全で信頼性の高いネットワークの確立を保証します。実験を続けてこれらのスキルを構築し、ネットワーク プログラミングの習熟度をさらに高めてください。このガイドがお役に立てば幸いです。読んでいただきありがとうございます。コーディングを楽しんでください!

参考

Python でのネットワーキング

ソケットライブラリ

以上が高度な Python の概念 - Python を使用したネットワーキングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python vs. C:曲線と使いやすさの学習 Python vs. C:曲線と使いやすさの学習 Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

Pythonと時間:勉強時間を最大限に活用する Pythonと時間:勉強時間を最大限に活用する Apr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python vs. C:パフォーマンスと効率の探索 Python vs. C:パフォーマンスと効率の探索 Apr 18, 2025 am 12:20 AM

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

Pythonの学習:2時間の毎日の研究で十分ですか? Pythonの学習:2時間の毎日の研究で十分ですか? Apr 18, 2025 am 12:22 AM

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Python vs. C:重要な違​​いを理解します Python vs. C:重要な違​​いを理解します Apr 21, 2025 am 12:18 AM

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Apr 27, 2025 am 12:03 AM

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Web開発用のPython:主要なアプリケーション Web開発用のPython:主要なアプリケーション Apr 18, 2025 am 12:20 AM

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

See all articles