~~ネットワークプログラミング(VIII):UDP ~~

进击のpython


ネットワークプログラミング--UDP


それは今ここに見

これが最後のスポークネットワークプログラミングで

TCPのプログラミング方法に関するすべての上記

TCPとUDPトランスポート、それとの違いを覚えていますか?

シンプルなUDPは、単にそれがパイプにデータを送信しなくてもよいことを意味します

それはそれをする方法UDPソケット経由で情報を送信するためにどのようにあなた次第ですか!


古いルールは、メッセージングは​​PY 2つのファイルサーバとクライアントを作成します

server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

それを書くためにどのようにTCPでこの文を覚えておいてください

ここで、「データグラムモード」、UDPプロトコルを使用してデータ送信もデータグラム・プロトコルと呼ばれています

(電話= socket.socket(はsocket.AF_INET、socket.SOCK_STREAM))

本講演では、ストリーミングプロトコルは、スティックパック現象ああではありません

申し訳ありませんが沸騰、これは単に、UDP、この現象ではありません

私たちは、このsocket.socketは、常に多くの問題を記述しました

だから我々は、モジュールをインポート先頭に書くことができます

form socket import *

しかし*モジュールをインポートすることは推奨されませんが、理由は、我々はあまりにも多くを使用する方法の

だから、あなたは、このモジュールにそれらすべてをインポートすることができます

したがって、上記方法は以下のように書くことができます。

server = socket(socket.AF_INET,socket.SOCK_DGRAM)

どのようなポートバインディング、IPバインディング、それは必要ではないでしょうか?

server.bind(("127.0.0.1", 8080))

そのリスナーまたはそれを必要としますか?server.listen(5)

Iこれは何もありませんか?そう聞く必要はありませんか?リンクがよくありますが、UDPであります

それか(server.acceptが必要)ですか?

それともこの文は、私がいないUDPリンクを行うだけで使用するためのリンクを受け入れ、そうではないん

リンクがないことを、リンクが循環していない、ああ、あなたは必要ありません。

それはああではない通信ループでもあるべきです

sendtoとUDPでは、受信したメッセージが呼び出されるのrecvfrom()メッセージ()

while 1:
    data = server.recvfrom(1024)
    print(data)
server.close()

そのサーバーは、その後終了します

その後、クライアントがあります

クライアントはIPを結合する必要はないのですか?もちろん必要はありません!

クライアントは、パイプラインを確立する必要はないのですか?もちろん必要はありません!

私はそれが空に送信することはできませんか?

これは、TCP、UDPのために不可能であり、それことがわかり

 msg = input(">>>")
 client.sendto(msg.encode("utrf-8"),("127.0.0.1", 8080))

二つの引数を受け取るのsendto、最初はあなたが送ったメッセージで、第二は、送信したいタプルのIPアドレスとポート番号の形式であります

完成のこと、クライアントおよびサーバー

# 客户端
from socket import *

client = socket(AF_INET, SOCK_DGRAM)

while 1:
    msg = input(">>>")
    client.sendto(msg.encode("utf-8"), ("127.0.0.1", 8080))

client.close()
# 服务端
from socket import *

server = socket(AF_INET, SOCK_DGRAM)
server.bind(("127.0.0.1", 8080))

while 1:
    data = server.recvfrom(1024)
    print(data)
server.close()
# 客户端
>>>haha
>>>dawdadwad
>>>fdafwa
# 服务端
(b'haha', ('127.0.0.1', 63671))
(b'dawdadwad', ('127.0.0.1', 63671))
(b'fdafwa', ('127.0.0.1', 63671))

それから私は私のデータはタプルの形式で受信されたことが判明しました

ポートとIPの背後にあるクライアントに送信されるコンテンツの前で

私はまた、彼のIPアドレスとポートああをしたいと思い、なぜ私が理解できる何したいですか?

私は、ああ私を送ってこのデータを知っておく必要があるという理由だけで、その後、私はより良い、ああ戻って

それはの双方向サービスとクライアントを完了しました

data,client_addr = server.recvfrom(1024)
server.sendto(data.upper(),client_addr)

私は空に作られたときに、上記の提起された問題に対処するだけでなく、実行することができますので、空の問題を考慮していません

そして、彼は実際には、すべての髪はすべての情報を入れるために私を送られたデータグラムプロトコルであるため

だから、データのそれぞれとの間の接触の可能性がない、ないスティックパッケージはありません


とても便利であること、なぜUDPああそれ

我々は彼がだと言ったときに覚えている安全ではないまだ?

データ伝送ネットワークは、ボラティリティーを経験している場合、および情報が存在しないこと

しかし、他の人がもう一度あなたの髪を与えることはありません

もう一つは、(デジタル1となりの効果を見て内側にあなたが(のrecvfromしようとする))、完全ではないかもしれない情報を受信します

だから、2つの不安定性があります

UDPプロトコルファイル転送モードは、ダウンロードまたはリモートコマンドには適していません

しかし、問い合わせはUDPプロトコルとの事です

QQ情報送信は、UDPプロトコルであり、

クエリに私のために高速で、信頼できない大したことで、その後、再びそれをチェック

しかし、TCPは、まだ多くのを使用し、沸騰します


事のこの部分は、実際には非常に小さく、それらのほとんどは、概念をベースとしています

5層プロトコルの初めから、と2件の契約ということを学びました

そして、この方法ブリッジソケットによって、アプリケーション層とトランスポート層を構築

慎重な分析のその後の情報伝達モードTCPプロトコル

コットンは、汎用テンプレートを開発しました

最後に、UDPプロトコルの使用について提起TCPとの相対長所と短所です

次の部分は並行プログラミング、興味が私に注力していきます!


*この部分は*終了します
*いくつかの特別なエピソードを書きます*

おすすめ

転載: www.cnblogs.com/jevious/p/11328117.html