ホームページ バックエンド開発 Python チュートリアル Python ネットワークプログラミング TCP 通信例とソケットサーバーフレームワークの使用例

Python ネットワークプログラミング TCP 通信例とソケットサーバーフレームワークの使用例

Jun 16, 2016 am 08:44 AM
python socketserver tcp ネットワークプログラミング

1.TCP は、一方がデータを送信する前に、2 つの当事者間で接続を確立する必要があり、通信が完了した後、接続を 4 回切断する必要があります。 TCP のハーフクローズによって発生するハンドシェイク。一方の当事者がデータの送信を完了した後、この方向の接続を終了するために FIN を送信する必要がありますが、アプリケーションは FIN を受信した後もデータを送信できます。これはめったに行われません。TCP 接続の確立と切断のプロセスは次のとおりです。

Python ネットワークプログラミング TCP 通信例とソケットサーバーフレームワークの使用例Python ネットワークプログラミング TCP 通信例とソケットサーバーフレームワークの使用例

2. Python は TCP サーバーとクライアントのプログラミングを実装できます。

サーバー側:

コードをコピーします コードは次のとおりです:

#!/usr/bin/env python
インポート ソケット
host ="localhost"
port=10000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
s.listen( 5)
while 1:
sock,addr=s.accept()
print "接続フォームを取得しました",sock.getpeername()
data=sock.recv(1024)
ifデータではない:
ブレーク
それ以外の場合:
データを印刷

クライアント:

コードをコピー コードは次のとおりです:

#!/usr/bin/env python
インポートソケット
host="localhost"
port=10000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
s .send("クライアントからこんにちは")
s.close()

3. ソケットサーバーフレームワークを使用して TCP サーバーを作成します

Socketserver モジュールには、4 つのサーバー クラスが含まれています。TCPServer は TCP プロトコルを使用し、UDPServer は UDP プロトコルを使用します。また、あまり一般的ではない 2 つのクラス、つまり UnixStreamServer と UnixDatagramServer のみが使用されます。 UNIX 環境で便利です。

サーバー プログラミングを使用するには、まず、BaseRequestHandler クラスを継承するリクエスト ハンドル クラスを作成し、そのハンドル メソッドを書き換えてサーバー クラスを追加します。ホスト名、ポート番号、ハンドル クラスが渡され、server_forever() メソッドが呼び出されてリクエストを処理します。

ソケットサーバーフレームワークを使用するサーバー:

コードをコピー コードは次のとおりです:

import SocketServer
host=''
port=10000
class Handler(SocketServer.StreamRequestHandler):

def handler(self):
addr=self.request.getpeername()
print "接続を取得しました",addr
self .wfile.write("connected")

server=SocketServer.TCPServer((host,port),Handler)
server.serve_forever()

上記のソケットサーバーサーバーは 1 つのリクエストのみを処理できます。複数のリクエストを処理したい場合は、フォークまたはスレッドを使用してマルチプロセスまたはマルチスレッドサーバーを実装できます。フォークとスレッドを使用するサーバー コードは次のとおりです:

フォークサーバーを使用します:

コードをコピー コードは次のとおりです。

from SocketServer import TCPServer,ForkingMixIn,StreamRequestHandler
class Server(ForkingMixIn ,TCPServer) :pass
class Handler(StreamRequestHandler):

def handle(self):
addr=self.request.getpeername()
print "接続を取得しました",addr
self .wfile.write('connected')

server=Server((''.10000),Handler)
server.serve_forever()

マルチスレッドサーバーを使用します:

コードをコピー コードは次のとおりです。

from SocketServer import TCPServer,ThreadingMixIn,StreamRequestHandler
class Server(ThreadingMixIn ,TCPサーバー) :pass

class Handler(StreamRequestHandler):
def handle(self):
addr=self.request.getpeername()
print "接続元",addr
self.wfile.write( "接続済み")

server=Server(('',10000),Handler)
server.serve_forever()

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? 携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? Apr 02, 2025 pm 10:09 PM

Mobile XMLからPDFへの速度は、次の要因に依存します。XML構造の複雑さです。モバイルハードウェア構成変換方法(ライブラリ、アルゴリズム)コードの品質最適化方法(効率的なライブラリ、アルゴリズムの最適化、キャッシュデータ、およびマルチスレッドの利用)。全体として、絶対的な答えはなく、特定の状況に従って最適化する必要があります。

携帯電話のXMLファイルをPDFに変換する方法は? 携帯電話のXMLファイルをPDFに変換する方法は? Apr 02, 2025 pm 10:12 PM

単一のアプリケーションで携帯電話でXMLからPDF変換を直接完了することは不可能です。クラウドサービスを使用する必要があります。クラウドサービスは、2つのステップで達成できます。1。XMLをクラウド内のPDFに変換し、2。携帯電話の変換されたPDFファイルにアクセスまたはダウンロードします。

C言語合計の機能は何ですか? C言語合計の機能は何ですか? Apr 03, 2025 pm 02:21 PM

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 09:45 PM

XML構造が柔軟で多様であるため、すべてのXMLファイルをPDFSに変換できるアプリはありません。 XMLのPDFへのコアは、データ構造をページレイアウトに変換することです。これには、XMLの解析とPDFの生成が必要です。一般的な方法には、ElementTreeなどのPythonライブラリを使用してXMLを解析し、ReportLabライブラリを使用してPDFを生成することが含まれます。複雑なXMLの場合、XSLT変換構造を使用する必要がある場合があります。パフォーマンスを最適化するときは、マルチスレッドまたはマルチプロセスの使用を検討し、適切なライブラリを選択します。

推奨されるXMLフォーマットツール 推奨されるXMLフォーマットツール Apr 02, 2025 pm 09:03 PM

XMLフォーマットツールは、読みやすさと理解を向上させるために、ルールに従ってコードを入力できます。ツールを選択するときは、カスタマイズ機能、特別な状況の処理、パフォーマンス、使いやすさに注意してください。一般的に使用されるツールタイプには、オンラインツール、IDEプラグイン、コマンドラインツールが含まれます。

XMLを写真に変換する方法 XMLを写真に変換する方法 Apr 03, 2025 am 07:39 AM

XMLは、XSLTコンバーターまたは画像ライブラリを使用して画像に変換できます。 XSLTコンバーター:XSLTプロセッサとスタイルシートを使用して、XMLを画像に変換します。画像ライブラリ:PILやImageMagickなどのライブラリを使用して、形状やテキストの描画などのXMLデータから画像を作成します。

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 08:54 PM

XMLをPDFに直接変換するアプリケーションは、2つの根本的に異なる形式であるため、見つかりません。 XMLはデータの保存に使用され、PDFはドキュメントを表示するために使用されます。変換を完了するには、PythonやReportLabなどのプログラミング言語とライブラリを使用して、XMLデータを解析してPDFドキュメントを生成できます。

携帯電話でXMLを高品質でPDFに変換するにはどうすればよいですか? 携帯電話でXMLを高品質でPDFに変換するにはどうすればよいですか? Apr 02, 2025 pm 09:48 PM

携帯電話の高品質でXMLをPDFに変換する必要があります。クラウドでXMLを解析し、サーバーレスコンピューティングプラットフォームを使用してPDFを生成します。効率的なXMLパーサーとPDF生成ライブラリを選択します。エラーを正しく処理します。携帯電話の重いタスクを避けるために、クラウドコンピューティングの能力を最大限に活用してください。複雑なXML構造の処理、マルチページPDFの生成、画像の追加など、要件に応じて複雑さを調整します。デバッグを支援するログ情報を印刷します。パフォーマンスを最適化し、効率的なパーサーとPDFライブラリを選択し、非同期プログラミングまたは前処理XMLデータを使用する場合があります。優れたコードの品質と保守性を確保します。

See all articles