As per my understanding below are the following steps when a client makes a 
    connection request.
    1.Server will be binded to a particular port number.Always port number is 
    binded only to the process which listens.Since only server is listening for
    incoming connections,we dont have bind in client side.
    2.Server will be keep on listeninig on that port number.
    3.Client will send connect() request.
    4.Server will accept the request using accept().As soon as the server 
    accepts the client request,kernel allocates a random port number for the 
    server for further send and receive().Because same port number of the 
    server cant be used for sending as well as listening.Because the previous
    port need to listen for other incoming connections too.But from which 
    function() server comes to know about the client port ?I know that client 
    will send TCP segments with source port and destination port.So server will
    use the source  port of that segment as its destination port.But program 
    wise if we are thinking then from which function is the server fetching the
    client port details.Is it accept() ?If server needs to send data to 
    client,it need to know the port number of the client right?Any body pls 
    help me on understanding this concept.