我是套接字编程的新手,当我遇到困难时,我正在编写一些临时代码以更好地了解它。任何有关我做错了什么的指导将不胜感激!
我正在尝试编写一个简单的程序,该程序绑定并侦听用户指定的端口并向任何连接发送“Hello”消息。为了好玩,我想我只需在同一个端口上侦听所有 IPv4 和 IPv6 地址即可。这是一个代码片段:
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE;
if ( getaddrinfo(NULL, argv[1], &hints, &res) != 0 ) {
printf("getaddrinfo failed!\n");
return 1;
}
for ( addrinfo* p = res; p != NULL; p = p->ai_next ) {
inet_ntop(p->ai_family, get_addr_ptr(p->ai_addr), ipstr, sizeof ipstr);
printf("Found IP: %s\n",ipstr);
printf("\tGetting socket...\t");
sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol);
if ( sockfd == -1 ) {
perror("\t\tError");
continue;
}
printf("OK\n");
printf("\tBind Socket to Port...\t");
if ( …Run Code Online (Sandbox Code Playgroud)