ホームページ > バックエンド開発 > Python チュートリアル > Pythonのネットワークプログラミングの紹介

Pythonのネットワークプログラミングの紹介

William Shakespeare
リリース: 2025-03-05 10:36:10
オリジナル
973 人が閲覧しました

このチュートリアルでは、Pythonソケットを紹介し、

モジュールを使用してHTTPサーバーとクライアントの構築を実証します。 It also explores Tornado, a Python networking library ideal for long-polling, WebSockets, and applications needing persistent user connections.socket

ソケットを理解する

ソケットは、同じマシンでもネットワーク全体でも、2つのアプリケーション間の通信チャネルとして機能します。 基本的に、それはサーバーとクライアントの間の接続リンクです。サーバーは、クライアントから要求された情報を提供します。 たとえば、ブラウザはソケットを使用してWebページにアクセスするときにWebサーバーに接続します。

The Module socketソケット作成では、関数:を使用します

socket.socket()引数:

import socket
s = socket.socket(socket_family, socket_type, protocol=0)
ログイン後にコピー

  • :家族(例えば、ipv4の場合は、ipv6の場合はsocket_family)。 socket.AF_INETsocket.AF_INET6
  • :ソケットタイプ(例えば、tcpの場合は
  • 、udpの場合)。 socket_type socket.SOCK_STREAMsocket.SOCK_DGRAM:通常はデフォルトです
  • シンプルなクライアントの作成protocol キークライアントメソッド:

:TCP接続を確立します。

    例:
  • s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  • 単純なサーバーの構築s.connect()
キーサーバーのメソッド:

import socket

stream_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = "localhost"
port = 8080
server_address = (server, port)
stream_socket.connect(server_address)

message = 'message'
stream_socket.sendall(message.encode())

data = stream_socket.recv(10)
print(data)

stream_socket.close()
ログイン後にコピー

:アドレス(hostname、port)をソケットに割り当てます。

    :TCP接続のリスニングを開始します
  • s = socket.socket(socket.AF_INET, socket.SOCK_STREAM):TCPクライアント接続を受け入れます
  • 例:s.bind()
  • 通信のために別々の端末でクライアントとサーバーを実行します。 ポートの使用量を確認するには、s.listen()(またはOSの同様のコマンド)を使用してください。
  • 竜巻フレームワークs.accept()Tornadoは、Python Webフレームワークと非同期ネットワーキングライブラリです。 Its non-blocking I/O handles many concurrent connections, making it suitable for long-polling, WebSockets, and applications requiring persistent connections.
単純な竜巻WebSocketの例:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 8080
sock.bind((host, port))
sock.listen(1)

print('Waiting for a connection')
connection, client = sock.accept()
print(client, 'connected')

data = connection.recv(16)
print('Received "%s"' % data)
if data:
    connection.sendall(data)
else:
    print('No data from', client)

connection.close()
ログイン後にコピー
竜巻は

と統合されており、同じイベントループ内で両方のライブラリを使用できます。 netstat -ntlp

同期対非同期プログラミング

同期プログラミングはタスクを順次実行しますが、非同期プログラミングにより、他の人が終了するのを待たずに同時タスクの実行が可能になります。 非同期プログラミングは、API呼び出しなどのI/Oバインド操作を扱い、遅延を防ぎ、アプリケーションの応答性を改善する場合に有利です。 Tornadoの非同期機能は、複数のAPI要求を同時に処理するのに特に役立ちます。

結論 このチュートリアルは、Pythonのソケットプログラミングの基盤を提供し、シンプルなサーバー/クライアントの作成を実証しました。

モジュールと竜巻のさらなる調査により、ネットワーク機能が向上します。 詳細情報については、公式のPythonドキュメントを参照してください。

socket

(竜巻Webサーバー出力の画像 - 利用可能な場合は実際の画像URLに置き換えます)Introduction to Network Programming in Python

以上がPythonのネットワークプログラミングの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート