A TCP connection is uniquely identified by the five-tuple (global-time, source-ip, source-port, destination-ip, destination-port)
If you only consider a particular point in time, you're left with the four-tuple (source-ip, source-port, destination-ip, destination-port)
When a client connects to host:port, that fixes the destination-ip and destination-port, These do not change when the server accepts the incoming connection -- the connection will always have (destination-ip, destination-port) as part of the tuple.
Given that the source client has a given IP address, that fixes the source-ip part of the tuple, which only leaves the source-port as the variable part to tell apart multiple connections to the same target:port from that same source host. This is why the connect() call allocates a "random, unused" port number for the client-side socket when connecting, and then keeps that for the duration of the connection.
If you are in a datacenter, and generate a lot of connections from the same source host to the same target host (for example, for an internal HTTP service, or database connection without connection pooling,) then it's possible that you use all source ports on the client machine for the given target host:port. Different OS-es use between 16k and 64k space for these "ephemeral" ports, and a port cannot be re-used within two minutes of the connection ending, because of the TCP spec. This is because a "late packet" from a previously connection should not be confused with a packet for an existing connection between the two hosts. So, the maximum sustained number of connections made and finished between two hosts is somewhere between 136 and 546 connections per second. If this ends up being a problem for you, the first thing to do is probably to turn on connection pooling or something similar; if you can't do that for some reason (looking at you, Ruby and PHP,) then you may need to create more IP addresses for the same host on the same physical interface, using interface aliases, and round-robin outgoing connections across these interface aliases. Here's hoping your game will be so successful that you'll have to worry about this ?