Resposta curta:
Indo pela resposta dada aqui . Você pode ter dois aplicativos ouvindo no mesmo endereço IP e número da porta, desde que uma porta seja uma porta UDP, enquanto outra é uma porta TCP.
Explicação:
O conceito de porta é relevante na camada de transporte da pilha TCP / IP, portanto, enquanto você estiver usando diferentes protocolos da camada de transporte, poderá ter vários processos ouvindo a mesma <ip-address>:<port>
combinação.
Uma dúvida que as pessoas têm é que, se dois aplicativos estiverem sendo executados na mesma <ip-address>:<port>
combinação, como um cliente executando em uma máquina remota fará a distinção entre os dois? Se você observar o cabeçalho do pacote da camada IP ( https://en.wikipedia.org/wiki/IPv4#Header ), verá que os bits 72 a 79 são usados para definir o protocolo, é assim que a distinção pode ser feita.
Se, no entanto, você quiser ter dois aplicativos na mesma <ip-address>:<port>
combinação de TCP , a resposta é não (um exercício interessante será lançar duas VMs, fornecer o mesmo endereço IP, mas endereços MAC diferentes e ver o que acontece - você notará que algumas vezes A VM1 receberá pacotes e outras vezes a VM2 receberá pacotes - dependendo da atualização do cache do ARP).
Sinto que, ao fazer dois aplicativos serem executados da mesma maneira, <op-address>:<port>
você deseja obter algum tipo de balanceamento de carga. Para isso, você pode executar os aplicativos em portas diferentes e escrever regras de tabela IP para bifurcar o tráfego entre elas.
Veja também a resposta de @ user6169806.