Могут ли сокеты TCP и UDP использовать один и тот же порт?

Прежде всего, есть ли проблемы с использованием UDP и TCP на одном сервере?

Во-вторых, могу ли я использовать один и тот же номер порта?

Да, вы можете использовать один и тот же номер порта для TCP и UDP. Многие протоколы уже делают это, например, DNS работает на udp / 53 и tcp / 53.

Технически пулы портов для каждого протокола полностью независимы, но для протоколов более высокого уровня, которые могут использовать TCP или UDP, принято, что они по умолчанию имеют тот же номер порта.

При написании своего сервера помните, что последовательность событий для сокета TCP намного сложнее, чем для UDP-сокета, так как обычные вызовы socket и bind вы также должны listen и accept .

Кроме того, этот accept будет возвращать новый сокет, и это тот сокет, который вам нужно будет также опросить для событий приема. Ваш сервер должен быть готов продолжить accept соединений в исходном сокете, одновременно обслуживая несколько клиентов, каждый из которых будет запускать события приема в своих собственных сокетах.

Во-первых, нет проблем с использованием как tcp, так и udp на сервере.

Во-вторых, мы можем иметь как UDP, так и TCP-запросы на одном и том же порту, потому что каждый запрос идентифицируется с помощью пятикратного набора, содержащегося в исходном IP-адресе, IP-адреса назначения, Source Port, Destination Port, PROTOCOL (поскольку протокол может быть TCP или UDP).

  • Получение IP-адреса текущего компьютера с использованием Java
  • Простой сервер Http с Java / Socket?
  • Передача структуры через Sockets в C
  • Как исправить java.net.SocketException: Неработающая труба?
  • Как вы дросселируете пропускную способность соединения сокета в C?
  • Что вы используете, когда вам нужен надежный UDP?
  • Как установить тайм-аут блокировки сокетов в boost asio?
  • Как обнаружить разъединение сокета TCP (с гнездом C Berkeley)
  • Как обнаружить ближайший боковой разъем?
  • Отправка сообщения всем клиентам (связь Client-Server)
  • Обнаружение отключения клиента TCP
  • Interesting Posts

    Нарисуйте 3D-векторы

    В моих динамиках, похоже, есть полтергейст (нет, действительно)

    Есть ли какие-либо расширения или трюки, чтобы открыть несколько закрытых вкладок в Safari

    Кто-нибудь еще найдет classы и методы именования одной из самых сложных частей в программировании?

    Удаление OLD-файлов в winsxs

    Преобразовать значения в столбце в имена строк в существующем кадре данных в R

    Почему exception.printStackTrace () считается плохой практикой?

    Как передать значения аргументам функции modal.show () в Bootstrap

    Общие правила обозначения имен параметров для Java (с несколькими символами)?

    Когда приложение iOS переходит в фоновый режим, приостановлены ли длительные задачи?

    Создание случайного двойника в диапазоне

    Параметры Angularjs ng с использованием номера для модели не выбирают начальное значение

    Смените два элемента в списке

    Более эффективный способ для цикла паузы

    Как узнать аудиоформат wav-файла?

    Давайте будем гением компьютера.