Hi Bob
Essentially it is only possible to have one listener on a particulat port.
Generally the listener then checks the source port to see whether there is already a connection. If not, it needs to 'create' a new connection (probably spawn in your terminology) to which it assigns the source port as reference.
Further frames to the particular open connection are then handled by the session (thread or whatever) assigned to the source port.
When the connection terminates, the connection resources can be freed.
The system must be dimensioned to be able to handle the expected number of parallel connections expected to be encountered. If a new connection is not possible since the connection limit has been reached the connection can be refused by sending a RST.
Regards