O ServerSocket aceita o soquete de retorno na porta arbitrária?
Eu vi muitas respostas semelhantes a esta em relação a serversockets em java: "Digamos que você tenha um servidor com um servidor na porta 5000. Cliente A e Cliente B estarão se conectando ao nosso servidor.
O cliente A envia uma solicitação ao servidor na porta 5000. A porta no lado do cliente A é escolhida pelo sistema operacional. Normalmente, o sistema operacional seleciona a próxima porta disponível. O ponto de partida para esta pesquisa é o número de porta usado anteriormente + 1 (assim, por exemplo, se o sistema operacional nos acontecesse porta 45546 recentemente, o sistema operacional tentaria 45547).
Supondo que não haja problemas de conexão, o Servidor recebe a solicitação do Cliente A para conectar-se à porta 5000. O Servidor abre a sua próxima porta disponível e a envia para o cliente. Aqui, o Cliente A se conecta à nova porta e o servidor agora tem a porta 5000 novamente disponível. "
Eu vi respostas como esta em várias perguntas em stackoverflow sobre como uma porta diferente é usada no soquete retornado do accept () que a porta que o ServerSocket está escutando. Eu sempre tive a impressão de que o TCP é identificado pelo quarteto de informações:
IP do Cliente: Porta do Cliente e IP do Servidor: Porta do Servidor -> protocolo também (para distinguir o TCP do UDP)
Então, por que o accept () precisa retornar um soquete ligado a uma porta diferente? O quarteto de informações enviadas em cada cabeçalho não diferencia várias conexões para a mesma porta de servidor de máquinas diferentes, onde não seria necessário usar portas diferentes na máquina do servidor para comunicação?