UDPとTCPの違い(例コード)
4120 ワード
こんにちは、これは私の最初のポストです.私は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の基本的な理解を与えるコメントであなたの考えを生きるか、または私に連絡して自由に感じて
Reference
この問題について(UDPとTCPの違い(例コード)), 我々は、より多くの情報をここで見つけました https://dev.to/black_strok3/difference-between-udp-and-tcp-example-code-1pg1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol