Привет всем, это мой первый пост. Я начал 100daysofcodechallenge Поэтому я решил написать о том, что я изучаю каждый день.
Сегодня я узнал о разнице между UDP и TCP и использовал ее в модели клиента/сервера Python Code.
UDP (протокол Datagram пользователя):
Проще говоря, UDP-это очень быстрый и не очень надежный протокол связи и не нуждается в подключении перед отправкой данных.
TCP (протокол управления передачей):
С другой стороны, 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 ()
Для подключений на IT сокет, в то время как UDP просто не делает этого (если данные отправляются и сервер не вверх, он просто потерян)
2. TCP принимает соединение Newsockfd, .accept ()
от клиента перед обменом информации, пока UDP просто принимает информацию и хранит Данные, .recvfrom (1024)
IP -адрес, от которого он получил информацию
3. Приемная функция. TCP использует Recv (1024)
для повторного восстановления данных “1024” Укажите объем данных В то время как UDP использует Recvfrom (1024)
В основном потому, что адрес, по которому были получены данные, также должен быть сохранен
4. Функция отправки. TCP использует Send ()
потому что ему не нужно указывать адрес, на который должны быть отправлены данные Поскольку соединение уже установлено между клиентом и сервером Пока UDP использует sendto ()
который необходимо для того, чтобы быть отправленным адресом, на который будут отправлены данные.
FTP, SSH, электронная почта Используйте TCP. Потоковые медиа, онлайн -игры Используйте UDP.
Надеюсь, эта небольшая информация даст вам базовое понимание TCP и UDP Не стесняйтесь жить в комментариях или свяжитесь со мной по адресу black_strok3
Оригинал: “https://dev.to/black_strok3/difference-between-udp-and-tcp-example-code-1pg1”