在计算机系统上,我将服务器设置为运行

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)会将其绑定到任何可用接口。

10-07 18:31