@Paul_Arah I think what you started with should actually work fine - you just need to handle each new connection in its own go routine. You only have a single go routine running for each “server port” but you’re trying to connect multiple clients to each of those ports. From inside each server go routine, create a new go routine to handle each incoming connection.
In other words, if you have 2 ports open, you’d have 2 long lived go routines, then if 2 clients connected to each port (4 total clients) then you’d have 6 total go routines, 4 of which are ephemeral and live as long as the connection is alive.
Hope that helps!