ホームページ  >  記事  >  バックエンド開発  >  Pythonソケットは簡単な通信を完了します

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

coldplay.xixi
coldplay.xixi転載
2020-12-25 17:29:196164ブラウズ

#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 までご連絡ください。