Necesito una aplicación que envíe un paquete UDP a algún servidor de red y reciba la respuesta. El servidor responde al mismo número de puerto de donde vino la solicitud, así que primero necesito vincular() mi socket a cualquier número de puerto UDP.¿Cómo enlazar a un puerto disponible?
La codificación rígida del número de puerto UDP es una mala idea, ya que podría ser utilizada por cualquier otra aplicación que se ejecute en la misma PC.
¿Hay alguna manera de vincular un socket UDP a cualquier puerto disponible? OMI debe ser una forma efectiva de obtener rápidamente un número de puerto libre, que se utiliza, por ejemplo, la función accept().
Si no, ¿cuál es la mejor estrategia para intentar vincular y comprobar el estado de WSAEADDRINUSE/EADDRINUSE: pruebe los puertos secuencialmente a partir de 1025, o 1025 + rand(), o de algún otro modo?
accept() se usa en conectores basados en conexión, no en datagramas. – Beano
quizás esto ayude: http://serverfault.com/questions/447044 – yegor256
¿En POSIX? También requiere un rango 1024+: http://stackoverflow.com/questions/913501/how-to-let-kernel-choose-a-port-number-in-the-range-1024-5000-in-tcp-socket- pr –