在套接字编程中做什么
servaddr.sin_addr.s_addr=INADDR_ANY;
在客户端程序中实际上做了什么? INADDR_ANY是什么意思?
另外在互联网上找到的另一个来源,我找到了
servaddr.sin_addr.s_addr=inet_addr(argv[1]);
这一步是做什么的?我想我必须输入服务器ip作为参数,因为客户端希望连接到。我是对的吗?
答案 0 :(得分:1)
在服务器上,INADDR_ANY
是bind
的一个参数,它告诉套接字监听所有可用的接口。
在客户端上,它是connect
的一个参数,告诉客户端连接到哪个服务器但除了指定“此主机”的替代方式之外似乎没有意义。
(在这两种情况下,它实际上是指向实际传递的struct sockaddr_in
的指针,IP加法器是该结构的sin_addr.s_addr
字段。形式函数规范实际上指定了struct sockaddr *
)