Puede escuchar en cualquier puerto que desee; en general, las aplicaciones de usuario deben escuchar los puertos 1024 y superiores (a través de 65535). Lo principal si tiene un número variable de oyentes es asignar un rango a su aplicación, digamos 20000-21000 y EXCEPCIONES DE CAPTURA. Así es como sabrá si un puerto es inutilizable (usado en otro proceso, en otras palabras) en su computadora.
Sin embargo, en su caso, no debería tener un problema al usar un solo puerto codificado duro para su oyente, siempre y cuando imprima un mensaje de error si falla la vinculación.
Tenga en cuenta también que la mayoría de sus sockets (para los esclavos) no necesitan estar explícitamente vinculados a números de puerto específicos: solo los sockets que esperan conexiones entrantes (como su maestro aquí) necesitarán ser escuchados y enlazados a un puerto. Si no se especifica un puerto para un socket antes de usarlo, el sistema operativo asignará un puerto utilizable al socket. Cuando el maestro quiere responder a un esclavo que le envía datos, la dirección del remitente es accesible cuando el oyente recibe datos.
Supongo que usará UDP para esto?
Por cierto, si usted acaba de recoger un número de puerto aleatorio o aleatorio-ish (preferiblemente mayor de 1024), probablemente estará disponible . Incluso puede usar el puerto 80 o 21 o lo que sea, siempre que ningún otro programa esté escuchando. En un momento dado, en un sistema normal, solo una pequeña fracción de puertos está en uso. –
Elegir un puerto aleatorio no es una buena idea, deje que el sistema operativo elija uno para usted. – Corehpf
En POSIX: http://stackoverflow.com/questions/913501/how-to-let-kernel-choose-a-port-number-in-the-range-1024-5000-in-tcp-socket-pr –