En principio, por como dice la letra, el programa servidor escucha en el puerto 54321.
Cuando reciba mensajes por ese puerto, a partir de cada mensaje recibido, vas a poder saber la dirección IP y el puerto del emisor (cliente) y hacer que el servidor le responda a esa dirección y puerto, o en otro caso enviar a la dirección de broadcast (si es que querés enviar un mensaje a todos los clientes a la misma vez). Ejemplo en Java :
https://systembash.com/a-simple-java-udp-server-and-udp-client/
Si te fijás en ese ejemplo, vas a ver que al principio, el programa servidor crea un DatagramSocket definido con el puerto por el que quiere escuchar.
Acordate que levantar varios puertos implica pedir mas recursos al sistema, aunque si usas un solo puerto de recepción en el servidor, probablemente tengas que encargarte de como compartirlo entre varios threads.
Espero te aclare algo, cualquiero cosa preguntá devuelta.