Python でのネットワーク プログラミングはソケットを使用して実装できます。ソケットはネットワーク通信の基本コンポーネントであり、汎用コンピューター ネットワーク プログラミング インターフェイスです。 Python のソケット ライブラリは、データ転送をサポートするためのシンプルかつ強力なインターフェイスを提供し、Python サーバー プログラミングを適切にサポートします。
ソケットは通信リンクの 2 つのエンドポイントであり、ネットワーク通信の実装に使用され、コンピュータ間のデータ送信インターフェイスを提供します。 Python では、ソケット ハンドルはクライアント接続リクエストまたはサーバー リスニング リクエストにすることができ、ソケットは TCP プロトコルと UDP プロトコルの両方に使用できます。
Python では、ソケットは 2 つのタイプに分類されます:
TCP ソケットは、接続送信メソッドを提供します。クライアントは、接続を確立する必要があります。サーバーに接続するときの接続。接続プロセスは「3 ウェイ ハンドシェイク」プロセスです。 TCP プロトコルは、送信が完了したかどうか、送信に失敗した場合は再送信するなど、一連の問題を検出します。 TCPソケットの伝送効率は低いですが、データ伝送は確実です。
UDP ソケットは、TCP ソケットと比較して「3 ウェイ ハンドシェイク」を必要としない「コネクションレス」方式を提供します。インターフェース効率が高いです。が、送信信頼性は低いです。
Python では、ソケットを使用する場合、まず接続を確立し、接続が完了したらデータを送信し、送信が完了したら接続を閉じる必要があります。以下は Python でのサーバー側ソケット実装です:
import socket HOST = '127.0.0.1' #本地ip PORT = 8888 #端口号 #创建一个套接字对象 server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #将套接字与本地ip及其端口号绑定 server.bind((HOST, PORT)) #开始监听传入的连接 server.listen() #不断接收客户端的连接,如果有新的连接加入,就创建新的连接线程进行处理 while True: #获取客户端请求 conn, addr = server.accept() print('Connected by', addr) #接收客户端发来的数据并回应 data = conn.recv(1024) print(data) conn.sendall(data) #关闭连接 conn.close()
上記は Python サーバー側ソケット実装の簡単なサンプルコードです. 以下に各部の機能と実装方法を簡単に紹介しますコードの。
まず、Python ソケット ライブラリのソケットをインポートし、サーバーのローカル IP アドレスとポート番号を宣言する必要があります。これは、他のサービスと競合しない限り、後で自分で設定できますコンピューター上で開かれました。
コードでは、最初に空のソケット オブジェクト サーバーが確立され、socket.socket 関数を使用して完了します。最初のパラメータ AF_INET は IPv4 プロトコルを表し、2 番目のパラメータ SOCK_STREAM は TCP プロトコルの使用を表します. .
次に、bind 関数を使用してソケット サーバーをローカル IP とそれに対応するポート番号にバインドします。ここではタプル形式が使用され、ローカル IP とポート番号がパラメータとして渡されます。 IP アドレスに入力します。一重引用符を使用してください。
その後、ソケットサーバーの listen を開始し、listen 関数を使用します。この例では、サーバーはローカル IP とポート番号に対応するソケット情報を受信し、接続要求を受け入れ、接続成功メッセージを返します。
最後に、ループを使用してクライアントのリクエストを継続的に監視し、毎回 1 つのリクエストを取得し、接続されているクライアントの IP アドレスを出力し、クライアントから送信されたデータを受信して出力し、応答 。データ転送が完了したら、接続を閉じます。
Python でのネットワーク プログラミングにソケット ソケットを使用すると、より自由度が高まり、さまざまなネットワーク通信ベースのアプリケーションを容易かつ柔軟に実装できます。ここでは、Python のサーバーサイド ソケットについて簡単に紹介します。実装方法は、お役に立てば幸いです。
以上がPython サーバー プログラミング: ネットワーク ソケットの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。