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