What client-side situations need bind()?

后端 未结 7 1735
长情又很酷
长情又很酷 2021-01-01 16:21

I\'m learning C socket programming. When would you use bind() on the client-side? What types of program will need it and why? Where can I find an example?

7条回答
  •  余生分开走
    2021-01-01 16:28

    A classic example of a client program using bind() is the (obsolete) rlogin / rsh family of network clients. These clients were intended to be used within networks with strong trust relationships - in some cases the server machine trusts the client machine to tell it the username of the user that is connecting. This required that the client program connect from a low port (a port less than 1024), because such ports are restricted to the root user and thus (in theory) prove that the client being used is authorised by the system administrator.

    The NFS protocol has similar trust relationships, and similarly the client makes connections from a low port number, using bind().

    Another example is IRC clients that allow the user to specify a particular source IP address to connect from. This is to accomodate users with many IP addresses assigned to their machine, each with a different "vanity" domain name assigned to it. Choosing which IP to connect from (with bind()) allows the user to choose which domain name to appear as on IRC.

提交回复
热议问题