Да, вы можете использовать один и тот же номер порта для TCP и UDP. Многие протоколы уже делают это, например, DNS работает на udp / 53 и tcp / 53.
Технически пулы портов для каждого протокола полностью независимы, но для протоколов более высокого уровня, которые могут использовать TCP или UDP, принято, что по умолчанию используется один и тот же порт число .
При написании вашего сервера имейте в виду, что последовательность событий для сокета TCP намного сложнее, чем для сокета UDP, поскольку, как и при обычных вызовах socket
и bind
, вам также необходимо listen
и accept
.
Кроме того, вызов accept
вернет новый сокет, а этот сокет , который вам затем придется также опрашивать для получения событий. Ваш сервер должен быть готов к продолжению accept
подключений на исходном сокете, одновременно обслуживая несколько клиентов, каждый из которых будет инициировать получение событий на своих собственных сокетах.