it-swarm-pt.com

Os soquetes TCP e UDP podem usar a mesma porta?

Primeiro de tudo, há algum problema com o uso de UDP e TCP no mesmo servidor?

Em segundo lugar, posso usar o mesmo número de porta?

87
user800799

Sim, você pode usar o mesmo número de porta para TCP e UDP. Muitos protocolos já fazem isso, por exemplo, o DNS funciona no udp/53 e tcp/53.

Tecnicamente, os conjuntos de portas para cada protocolo são completamente independentes, mas para protocolos de nível superior que podem usar TCP ou UDP, é convenção que eles padronizem para a mesma porta número.

Ao escrever seu servidor, lembre-se de que a sequência de eventos para um soquete TCP é muito mais difícil do que para um soquete UDP, pois, além das chamadas normais socket e bind, você também precisa listen e accept.

Além disso, a chamada accept retornará um novo soquete e é o soquete that que você também precisará pesquisar para receber eventos. Seu servidor deve estar preparado para continuar accepting conexões no soquete original enquanto atende simultaneamente a vários clientes, cada um dos quais acionará eventos de recebimento em seus próprios soquetes.

94
Alnitak

Em primeiro lugar, não há nenhum problema ao usar o tcp e o udp no servidor.

Em segundo lugar, podemos ter solicitações UDP e TCP na mesma porta, porque cada solicitação é identificada por um quintuplo contido no IP de origem, IP de destino, IP de destino, porta de origem, porta de destino, PROTOCOLO (como o protocolo pode ser TCP ou UDP).

6
aMooly