在c语言的socket编程中,为什么要在server程序中指定socket地址? 我无法理解为什么要在服务器程序中指定套接字地址,因为我们在客户端程序中指定套接字地址,需要在服务器程序中指定什么。
代码如下:
bzero((char *)&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=inet_addr(argv[1]);
serv_addr.sin_port=htons(atoi(argv[2]));
最佳答案
大多数服务器没有明确指定套接字地址,它们使用INADDR_ANY
(作为@ybo 地址)。
然而,服务器可能指定地址的原因是为了控制客户端到达哪个接口(interface)。例如,您可以绑定(bind)到地址 127.0.0.1 (localhost) 以确保客户端仅在本地计算机上运行,从而降低与远程连接相关的安全风险。您还可以显式绑定(bind)到外部端口,以便更好地沙盒远程客户端。
关于c - c语言的socket编程中,为什么要在server程序中指定socket地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15947411/