Respuesta corta:
Yendo por la respuesta dada aquí . Puede tener dos aplicaciones escuchando en la misma dirección IP y número de puerto, siempre que uno de ellos sea un puerto UDP, mientras que otro sea un puerto TCP.
Explicación:
El concepto de puerto es relevante en la capa de transporte de la pila TCP / IP, por lo tanto, siempre que utilice diferentes protocolos de la capa de transporte de la pila, puede tener múltiples procesos escuchando en la misma <ip-address>:<port>
combinación.
Una duda que la gente tiene es que si dos aplicaciones se ejecutan en la misma <ip-address>:<port>
combinación, ¿cómo distinguirá un cliente que se ejecuta en una máquina remota entre las dos? Si observa el encabezado del paquete de la capa IP ( https://en.wikipedia.org/wiki/IPv4#Header ), verá que los bits 72 a 79 se utilizan para definir el protocolo, así es como se puede hacer la distinción.
Sin embargo, si desea tener dos aplicaciones en la misma <ip-address>:<port>
combinación de TCP , entonces la respuesta es no (un ejercicio interesante será lanzar dos máquinas virtuales, darles la misma dirección IP, pero diferentes direcciones MAC, y ver qué sucede; notará que algunas veces VM1 obtendrá paquetes, y otras veces VM2 obtendrá paquetes, dependiendo de la actualización de caché ARP).
Creo que al hacer que dos aplicaciones se ejecuten en la misma <op-address>:<port>
, desea lograr algún tipo de equilibrio de carga. Para esto, puede ejecutar las aplicaciones en diferentes puertos y escribir reglas de tabla IP para bifurcar el tráfico entre ellas.
Ver también la respuesta de @ user6169806.