Я экспериментирую с библиотекой сокетов python (3.5, на linux mint 18), пытаюсь понять UDP.Я - аппаратный человек, занимающийся программным обеспечением, и UDP кажется проще, чем TCP.Мне хорошо известно, что UDP не гарантирует доставку пакетов один за одним.
До сих пор я мог следовать инструкциям, чтобы передавать данные обратно с сервера на клиент.
Однако яЯ люблю писать, чтобы увидеть, что происходит, когда приложения не следуют по ожидаемому пути, я ненавижу писать вещи, которые «зависают», когда происходят непредвиденные события.
Если сервер привязывает сокет к номеру порта, тоКлиент отправляет несколько сообщений на этот порт, прежде чем сервер несколько раз вызывает recvfrom (), я обнаружил, что каждый вызов возвращает одно сообщение с сообщениями по порядку.Другими словами, сообщения были буферизованы, более поздние сообщения не перезаписывают более ранние сообщения в очереди.Я не был удивлен, увидев это, но также не удивился, обнаружив, что доступно только последнее принятое сообщение, то есть длина буфера, равная единице.
Является ли этот буфер и его глубина подробностями реализации Python,детали linux mint / ubuntu, или определенные протоколом UDP?