什么是servaddr.sin_addr.s_addr = INADDR_ANY

时间:2014-01-26 17:53:02

标签: c sockets

在套接字编程中做什么

servaddr.sin_addr.s_addr=INADDR_ANY;

在客户端程序中实际上做了什么? INADDR_ANY是什么意思?

另外在互联网上找到的另一个来源,我找到了

servaddr.sin_addr.s_addr=inet_addr(argv[1]);

这一步是做什么的?我想我必须输入服务器ip作为参数,因为客户端希望连接到。我是对的吗?

1 个答案:

答案 0 :(得分:1)

在服务器上,INADDR_ANYbind的一个参数,它告诉套接字监听所有可用的接口。

在客户端上,它是connect的一个参数,告诉客户端连接到哪个服务器但除了指定“此主机”的替代方式之外似乎没有意义。

(在这两种情况下,它实际上是指向实际传递的struct sockaddr_in的指针,IP加法器是该结构的sin_addr.s_addr字段。形式函数规范实际上指定了struct sockaddr *