Reputation: 6973
Let's say I have a server socket listening on port no 5010. When client tries to connect to this server socket using connect() API, server accepts socket connection in accept() API.
accept() API returns a new socket for server/client connection. Now all data transfer between server and client is done using this newly created socket. Does the data transfer happens on same port 5010. If not, how the ports are chosen when new socket is returned as a result of accept() API ?
Upvotes: 1
Views: 819
Reputation: 59316
The connection between the server and the client socket is identified by the tuple (serverAddress, serverPort, clientAddress, clientPort)
. The server address and server port always stay the same (obviously). The client allocates a (semi-)random "source" port to avoid collisions even if re-using the same address (e.g. when there are multiple clients on the same machine).
Upvotes: 1