Prima di tutto, c'è qualche problema con l'utilizzo di UDP e TCP sullo stesso server?
In secondo luogo, posso utilizzare lo stesso numero di porta?
Prima di tutto, c'è qualche problema con l'utilizzo di UDP e TCP sullo stesso server?
In secondo luogo, posso utilizzare lo stesso numero di porta?
Risposte:
Sì, puoi utilizzare lo stesso numero di porta sia per TCP che per UDP. Molti protocolli lo fanno già, ad esempio il DNS funziona su udp / 53 e tcp / 53.
Tecnicamente i pool di porte per ogni protocollo sono completamente indipendenti, ma per i protocolli di livello superiore che possono utilizzare TCP o UDP è convenzione che abbiano lo stesso numero di porta per impostazione predefinita .
Quando scrivi sul tuo server, tieni presente che la sequenza di eventi per un socket TCP è molto più difficile che per un socket UDP, poiché oltre alle chiamate normali socket
e bind
devi anche listen
e accept
.
Inoltre quella accept
chiamata restituirà un nuovo socket ed è quel socket che dovrai anche interrogare per ricevere eventi. Il tuo server dovrebbe essere pronto a continuare le accept
connessioni sul socket originale mentre serve simultaneamente più client, ognuno dei quali attiverà eventi di ricezione sui propri socket.
In primo luogo, non ci sono problemi utilizzando sia tcp che udp sul server.
In secondo luogo, possiamo avere sia richieste UDP che TCP sulla stessa porta, perché ogni richiesta è identificata da una quintupla contenuta da IP di origine, IP di destinazione, Porta di origine, Porta di destinazione, PROTOCOLLO (poiché il protocollo può essere TCP o UDP).