UDPとTCPの違い(例コード)



こんにちは、これは私の最初のポストです.私は100日SoftwdeChallengeを始めたので、私は毎日学ぶものについて書くことに決めた.

今日はUDPとTCPの違いを学び、クライアント/サーバモデルのPythonコードで使用しました.

UDP (ユーザデータグラムプロトコル):

簡単に言えばUDPは非常に高速で信頼性の高い通信プロトコルであり、データを送信する前に接続を行う必要はない.

TCP ( Transfer Control protocol ):

他方、TCPはデータが送られる前に接続を作ります、高速UDPとしてではなく、信頼できるトランスミッション・プロトコルです.

私は、違いを示すために単純なPythonサーバコードを使います

- TCP接続を使用した簡単なサーバ
from socket import * 

#create socket
sockfd = socket(AF_INET, SOCK_STREAM)
#bind socket
sockfd.bind(("127.0.0.1", 9999))
#listen for connections
sockfd.listen()

#accept connection
newsockfd, address = sockfd.accept() 

#recieve message
response = newsockfd.recv(1024)

#send message
message="this message is for you"
newsockfd.send(msg)


- UDP接続を使用した簡単なサーバ
#create socket
sockfd = socket(AF_INET, SOCK_DGRAM)

#bind socket
sockfd.bind(("127.0.0.1", 9999))

#recv message
data, client_addr = sockfd.recvfrom(1024)

#send message
message = "yo, yo"
msg = message.encode()
sockfd.sendto(msg, client_addr)

私たちは明らかにUDPコードがTCPより短いのを見ることができます.なぜなら、
1 TCP接続sockfd.listen() UDPがちょうどそれをしない間、itソケットの接続のために(データが送られるならば、サーバーは単に失われます).
2 TCP接続を受け入れるnewsockfd, address = sockfd.accept() UDPが情報と店を受け入れる間、情報を交換する前に、クライアントからdata, client_addr = sockfd.recvfrom(1024) それが情報を受け取ったIPアドレス
受信機能.TCP使用recv(1024) データ「1024」をrecvするために、データ量
UDP使用中recvfrom(1024) 基本的にデータが受信されたアドレスも格納される必要があるので
4 . send関数.TCPはsend() データが送られる必要があるアドレスを指定する必要がないので
クライアントとサーバーの間に接続が確立されているので
UDP使用中sendto() データを送信するアドレスをsppecifyする必要があります.
FTP、SSH、電子メール使用TCP.
ストリーミングメディア、オンラインゲーム使用UDP.
ホープこの小さな情報は、TCPとUDPの基本的な理解を与えるコメントであなたの考えを生きるか、または私に連絡して自由に感じて