¿Pueden los sockets TCP y UDP usar el mismo puerto?


En primer lugar, ¿hay algún problema con el uso de UDP y TCP en el mismo servidor?

En segundo lugar, ¿puedo usar el mismo número de puerto?

Author: Nicholas Wilson, 2011-06-22

2 answers

Sí, puede usar el mismo número de puerto tanto para TCP como para UDP. Muchos protocolos ya hacen esto, por ejemplo DNS funciona en udp/53 y tcp / 53.

Técnicamente, los pools de puertos para cada protocolo son completamente independientes, pero para los protocolos de nivel superior que pueden usar TCP o UDP es una convención que por defecto tienen el mismo puerto número .

Al escribir su servidor, tenga en cuenta que la secuencia de eventos para un socket TCP es mucho más difícil que para un UDP socket, ya que además de las llamadas normales socket y bind también tienes que listen y accept.

Además, esa llamada accept devolverá un nuevo socket y es ese socket que tendrás que sondear también para recibir eventos. Su servidor debe estar preparado para continuar accept las conexiones ing en el socket original mientras atiende simultáneamente a varios clientes, cada uno de los cuales activará eventos de recepción en sus propios sockets.

 77
Author: Alnitak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-08 09:09:17

En primer lugar,no hay problema en usar tcp y udp en el servidor.

En segundo lugar,podemos tener solicitudes UDP y TCP en el mismo puerto ,porque cada solicitud se identifica por un quíntuple contenido por IP de origen ,IP de destino, Puerto de Origen, Puerto de destino, PROTOCOLO(como protocolo puede ser TCP o UDP).

 4
Author: aMooly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-01 09:37:30