Em primeiro lugar, há algum problema em usar UDP e TCP no mesmo servidor?
Em segundo lugar, posso usar o mesmo número de porta?
fonte
Em primeiro lugar, há algum problema em usar UDP e TCP no mesmo servidor?
Em segundo lugar, posso usar o mesmo número de porta?
Sim, você pode usar o mesmo número de porta para TCP e UDP. Muitos protocolos já fazem isso, por exemplo, o DNS funciona em udp / 53 e tcp / 53.
Tecnicamente, os pools de portas para cada protocolo são completamente independentes, mas para protocolos de nível mais alto que podem usar TCP ou UDP, é convenção que eles tenham o mesmo número de porta por padrão .
Ao escrever seu servidor, tenha em mente que a seqüência de eventos para um socket TCP é muito mais difícil do que para um socket UDP, pois além do normal socket
e das bind
chamadas você também tem que listen
e accept
.
Além disso, essa accept
chamada retornará um novo soquete e é esse soquete que você terá que pesquisar também para receber eventos. Seu servidor deve estar preparado para continuar accept
as conexões no soquete original e, ao mesmo tempo, atender a vários clientes, cada um dos quais acionará eventos de recebimento em seus próprios soquetes.
Em primeiro lugar, não há problema em usar tcp e udp no servidor.
Em segundo lugar, podemos ter solicitações UDP e TCP na mesma porta, pois cada solicitação é identificada por um quíntuplo contido por IP de origem, IP de destino, Porta de origem, Porta de destino, PROTOCOLO (como protocolo pode ser TCP ou UDP).
fonte