Сервер C # отправляет UDP-пакеты клиенту Java

#c# #java #android #udp

#c# #java #Android #udp

Вопрос:

я работаю над проектом, в котором я должен передавать данные с сервера c # на клиент Java (работающий на устройстве Android). мне нужно использовать протокол UDP для передачи данных в реальном времени и для поддержания производительности. поиск в Интернете. не нашел ни одного подобного примера, и я действительно не знаю, с чего начать.

не могли бы вы подсказать, можно ли это сделать?

Заранее спасибо.

Ответ №1:

Да, это можно сделать. Это одна из прекрасных особенностей интернет-протоколов: поддержка стандартных сокетов настолько распространена, что разрозненные устройства, работающие с совершенно разными архитектурами ЦП и программными средами, могут взаимодействовать практически без проблем.

Пожалуйста, убедитесь, что UDP действительно лучший инструмент для работы. Вам нужна надежная доставка? Вам нужна доставка по заказу? Сколько пакетов вы можете терпеть? Сколько переупорядочивания пакетов вы можете терпеть? Будет ли ваше приложение обрабатывать пакеты размером 540 байт так же изящно, как оно будет обрабатывать пакеты размером 1500 байт? Требуется ли вашему приложению защита от атак «человек посередине»? Как?

TCP — невероятный протокол. Многие попытки использовать UDP «для ускорения» заканчиваются повторной реализацией многих вещей, которые TCP уже предоставляет для вас, но большинство повторных реализаций выполняются далеко не так хорошо, как в реальности. Пожалуйста, не спешите отклонять TCP.

Для начала практически любое сетевое руководство по Java и C # должно включать что-то вроде сервера чата или echo, сетевого программного эквивалента «Hello World». И этого было бы достаточно для простой среды. Если вы хотите, чтобы ваш сервер обрабатывал десятки клиентов одновременно, это потребует больше работы, а если вы хотите, чтобы ваш сервер масштабировался до сотен или тысяч, это будет совсем другой стиль программирования.

Комментарии:

1. Привет, спасибо за твой ответ. дело в том, что я собираюсь использовать UDP для отправки кадров изображений в режиме реального времени клиенту, поэтому мне нужен UDP для поддержания производительности, а также что мне нужно каким-то образом иметь возможность получать идентификаторы для полученных кадров и отображать их в правильном порядке. итак, если я получил изображение с идентификатором 5 и отобразил его, и после этого я получил идентификатор 3, я отброшу его. не могли бы вы указать отправную точку для создания такого UDP-пакета, включая идентификатор и длину.

Ответ №2:

Вы пробовали читать это:

http://nickstips.wordpress.com/2010/09/03/c-creating-and-sending-udp-packets/

Клиент не имеет значения, это может быть Java, C или любой другой язык / платформа. Не имеет значения. Протокол все тот же.

Надеюсь, это поможет.

Ответ №3:

Попробуйте документацию Oracle в качестве отправной точки для UDPS, там вы можете найти пример, который я использую в Java, но, как уже упоминалось, идея протоколов заключается в поддержке связи, не зависящей от языка.