この記事では、Python でのソケットを介した UDP 通信の概要 (コード付き) を紹介します。一定の参考価値があります。必要な友人は参考にしてください。お役に立てれば幸いです。
TCP は信頼性の高い接続を確立し、通信する双方の当事者がストリームの形式でデータを送信できます。 TCP と比較すると、UDP はコネクションレス型のプロトコルです。 UDPプロトコルを使用する場合、接続を確立する必要はなく、相手のIPアドレスとポート番号がわかれば、直接データパケットを送信できます。しかし、それが届くかどうかはわかりません。
UDP プロトコルを介してデータを送信する方法を見てみましょう。 TCP と同様に、UDP を使用する通信当事者も
クライアントとサーバーに分かれます
UDP 通信を実現するためのソケット構造図
は TCP と同様に、UDP を使用する通信相手もクライアントとサーバーに分かれます。サーバーはまずポートをバインドする必要があります。ただし、クライアントの接続を監視する必要はありません
#server import socket #创建Socket时, SOCK_DGRAM 指定了这个Socket的类型是UDP。 server = socket.socket(type=socket.SOCK_DGRAM) server.bind(('192.168.1.165',7890)) #不需要调用 listen() 方法, 而是直接接收来自任何客户端的数据 print('服务端已开启7890端口,正在等待被连接...') #recvfrom() 方法返回数据和客户端的地址与端口, 这样, 服务器收到数据后, #直接调用 sendto() 就可以把数据用UDP发给客户端 data,address = server.recvfrom(1024) print("client>>",data.decode('utf-8')) print("客户端连接的socket地址:", address) server.sendto(b'drink more water!',address) server.close()
クライアントが UDP を使用する場合、まず UDP ベースのソケットを作成し、その後 connect を呼び出す必要はありません。 ()、sendto( ) を介して直接サーバーにデータを送信します
import socket #创建Socket时, SOCK_DGRAM 指定了这个Socket的类型是UDP。 client = socket.socket(type=socket.SOCK_DGRAM) send_data =b'hello sheenstar' client.sendto(send_data,('192.168.1.165',7890)) re_Data,address = client.recvfrom(1024) print('server>>',re_Data.decode('utf-8')) client.close()
2 つのコマンド ラインを使用してサーバーとクライアントのテストをそれぞれ開始します
サーバーを開きます
UDP 通信を完了する
以上がPythonでのソケットUDP通信入門(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。