现在在看UNIX网络编程,没有全部看,节选了一些在看,太长了,呵呵 。
有一个问题一下子想不出来,想请教一下高手、前辈。谢谢。
问题:
我们在创建套接字后,可以调用bind()函数捆绑一个地址(包括IP地址和端口号),问题主要是对这个捆绑的IP地址不解。书上说,对于客户端,表示发送报文的源IP地址,对于服务器端,表示只对目的地址为此IP地址的报文进行接收。
这里我们讨论客户端的情景,即捆绑的这个IP地址就是发送报文的源IP地址。依照我们平时的经验,一般系统会设置一个(可能有多个)IP地址(这个IP地址到底是个什么东西说实话我不清楚,呵呵 ,初学),那么发送报文的时候到底是以捆绑在socket上的这个IP地址当源IP地址呢,还是以系统设置的那个IP地址当作源IP地址呢,这两个IP地址到底是一个什么关系,两者可以不一样吗????
书中提到过两个概念,即分组到达的接口和分组的目的IP地址,我想两个概念应该包含上述的相关问题,但是总没找到关于这两个概念的详述,没搞清楚。呵呵 所以想请教高手,能不能清晰的解释一下相关的东西。非常感谢。
jiaduo 于 2011-10-26 17:19:21发表:
我也刚初学socket(linux),我说一下我得理解吧!有不足还请指教!
bind函数是将socket与ip绑定,更详细的说应该是和网卡绑定,这样服务器的作为server的ip确定了,如果有多个ip都想绑定,可用INAADR_ANY这个参数,那么你用于server的ip就是你主机的所有ip,这样客户端就可以连接你所绑定的ip地址。简单说就是你绑定那个ip,客户端就只能用那个ip访问。ok?用bind绑定的ip也就是监听要用的ip,知道监听吧!bind说白了就是绑定一个“供自己监听以及clent访问的ip”明白了吗?
有问题可以在交流,这个我也想了好长时间