My UDP socket is bind()ing to port 53 (DNS). Does UDP have a TIME_WAIT state or is using SO_REUSEADDR pointless on UDP sockets?
            Asked
            
        
        
            Active
            
        
            Viewed 4,813 times
        
    4
            
            
        
        dongle26
        
- 826
 - 1
 - 10
 - 18
 
- 
                    Why are you binding a UDP socket? If it is needed maybe you need to use TCP – Adrian Cornish Sep 22 '12 at 03:34
 - 
                    1@Adrian Cornish How else do you tell the OS what port your UDP server is listening on? – Barmar Sep 22 '12 at 03:37
 - 
                    1You seem to be talking about a client, this is about a server. For instance, an NTP server must bind to port 123. – Barmar Sep 22 '12 at 03:43
 - 
                    Here is the explanation of use case: http://stackoverflow.com/questions/775638/using-so-reuseaddr-what-happens-to-previously-open-socket – Serge Sep 22 '12 at 03:46
 
1 Answers
7
            UDP doesn't have connections, so there's nothing analogous to TIME_WAIT. You don't need to use SO_REUSEADDR.
If you're listening on a broadcast or multicast address, you might need to use SO_REUSEPORT, so that if there are multiple listeners on the same machine they don't conflict. However, from what I can tell, this doesn't exist on Linux.
        Barmar
        
- 741,623
 - 53
 - 500
 - 612