Yes, you can use the same port number for both TCP and UDP. Many protocols already do this, for example DNS works on udp/53 and tcp/53.
Technically the port pools for each protocol are completely independent, but for higher level protocols that can use either TCP or UDP it's convention that they default to the same port number.
When writing your server, bear in mind that the sequence of events for a TCP socket is much harder than for a UDP socket, since as well as the normal socket
and bind
calls you also have to listen
and accept
.
Furthermore that accept
call will return a new socket and it's that socket that you'll then have to also poll for receive events. Your server should be prepared to continue accept
ing connections on the original socket whilst simultaneously servicing multiple clients each of which will be triggering receive events on their own sockets.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…