在计算机系统上,我将服务器设置为运行
int sockfd, newsockfd, portno;
unsigned int clilen;
char buffer[256];
struct sockaddr_in serv_addr, cli_addr;
int n;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
bzero((char *) &serv_addr, sizeof(serv_addr));
portno=3000;
serv_addr.sin_family = AF_INET;
char *srvr_addr=NULL;
srvr_addr="127.0.0.12";
inet_addr(srvr_addr);
serv_addr.sin_addr.s_addr =inet_addr(srvr_addr);
serv_addr.sin_port = htons(portno);
bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
listen(sockfd,5);
while (1)
{
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
bzero(buffer,256);
write(newsockfd,"Hi I am server",18);
}
我的问题是在其他计算机系统上,我打开Wifi并查找可用的网络,我看到2WIRE255、2WIRE56,HOME-1C32,ATT980之类的网络,但是为什么我看不到服务器从端口上的另一台计算机上运行3000和IP地址127.0.0.12。我需要在服务器上设置哪些信息,以便它可以注册并显示在2WIRE和ATT等可用网络中。
127.0.0.12的IP地址是否存在问题,无法在网络中注册?那我应该使用哪个IP地址?
最佳答案
网络127.0.0.0
仅对主机本地可见。除了主机本身之外,任何其他主机都无法访问该网络之外的地址(如127.0.0.12
)。
将套接字绑定到地址INADDR_ANY
(通常为0.0.0.0
)会将其绑定到任何可用接口。