Pythonソケットは簡単な通信を完了します

coldplay.xixi
リリース: 2020-12-25 17:29:19
転載
6161 人が閲覧しました

#python チュートリアルソケット通信方法を紹介するコラム

Pythonソケットは簡単な通信を完了します

## 推奨 (無料):python チュートリアル

socket の紹介

socket も「ソケット」として知られるソケットは、udp/tcp プロトコルを通じてデータを送信し、2 台のマシン間の単純な通信を実現します。

注: ソケットを使用して 2 台のマシン間の単純な通信を実現したい場合は、まず 2 台のマシンが同じローカル ネットワークに接続されていることを確認してください。もちろん、ソケットはマシン間の通信も実現できますので、接続先IPをローカルIPである127.0.0.1に設定するだけで済みます。

#例ここでは、いくつかの実用的な関数のみを示します。


関数 説明 ソケット.socket() ソケットを作成します socket.bind() IP とポートにバインドし、パラメータをタプルに渡します socket.recv() データの受け入れ データの送信 ソケットを閉じる ソケットに接続しますip とポート ##socket.listen() TCP ポートでリスニング モードを有効にする
#socket.send()
socket.close()
socket.connect()
##socket.accept() ブロック中、接続待ち
マシン間通信機能

ソケットサーバーsocket_server.py という名前のソケットを作成し、次のコードを入力します:

import socket server = socket.socket()server.bind(('0.0.0.0',80))server.listen()sock,addr = server.accept()data = ""while True: tmp_data = sock.recv(1024) if tmp_data: data += tmp_data.decode("utf8") else: breakprint('%s发送的内容:%s'%(addr[0],data))sock.close()
ログイン後にコピー

ここでソケットを作成し、それを 0.0 にバインドします。アドレス 0.0:80 で、このアドレスはローカルマシンの名前に変更することもできます。次に、リスニング モードを開始し、ユーザーが接続した後、データの受信を開始します (注: データを受け入れる前に utf8 デコードが必要です)。

ソケット クライアント

socket_server.py を作成した後、クライアントを作成できます。 socket_client.py というファイルを作成し、次のコードを入力します。

import socket client = socket.socket()client.connect(('127.0.0.1',80))client.send("Hello,Server.".encode("utf8"))client.close()
ログイン後にコピー

ここでは、connect と send の 2 つの関数についてのみ説明します。 connect 関数にタプルを渡しましたが、もちろんリストも機能します。最初の要素は接続されたオブジェクト IP である必要があり、2 番目の要素はポートです。接続完了後、send関数を使用してメッセージを送信しますが、送信前に内容をutf8形式にエンコードする必要があります。

Web サイトへのデータの送信

socket_website.py というファイルを作成し、次のコードを入力します。

import socket s.connect(('www.baidu.com',443))s.send('HELLO'.encode('utf8'))s.close()
ログイン後にコピー
ここでは、baidu.com にデータを送信しましたが、Baidu は https プロトコルを使用しているため、ポート 443 を使用します。コードがエラーを報告しない場合は、送信が成功したことを意味します。現時点では、Baidu のデータベースには HELLO と呼ばれる追加のテキスト コンテンツ データが含まれます。

ヒント: ソケットを使用して Web サイトまたはマシンにデータを送信し続けると、データが多すぎるとターゲットのデータベース/マシンのメモリがいっぱいになり、クラッシュが発生します。これは単純な伝説的な DDOS 攻撃を実装します

以上がPythonソケットは簡単な通信を完了しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!