0

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

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 和 127.0.0.12 的 IP 地址。我需要在服务器上设置什么信息,这样它才能注册并显示在可用的网络中,如 2WIRE 和 ATT。

127.0.0.12 的 IP 地址是否有问题无法在网络中注册?那我应该使用什么IP地址?

4

2 回答 2

1

该网络127.0.0.0仅对主机本地可见。127.0.0.12除了主机本身之外,任何其他主机都无法访问此网络之外的任何地址(如)。

将套接字绑定到地址INADDR_ANY(通常是0.0.0.0)会将其绑定到任何可用的接口。

于 2013-09-20T07:52:39.540 回答
0

我想可能是它没有监听wireless接口上的传入连接。尝试 put0.0.0.0而不是127.0.0.12for serv_addr。这会侦听任何接口上的连接。可能这会有所帮助。

于 2013-09-20T07:33:21.567 回答