Client simply needs to communicate with some process on the server. Since processes on the server should be attached to fixed ports so that they can be contacted by the client, they require bind function to assign them ports. This way the client knows which port of the process (on the server) to reach out to with which it wants to communicate. The client on the other hand can simply get a temporary port assigned (without the need of bind) and after it has done communicating with some process on the server, the client port is closed. Next time the same port can be given to some other client temporarily.