我正在尝试编写一个不可知的回声服务器,它可以接受 IPv4 和 IPv6 连接。我正在使用使用 getaddrinfo 设置的 addrinfo 结构。
ipv4 连接没有问题,而我无法获得有效的 ipV6 连接。我认为我的问题可能是由于错误的 getaddrinfo 参数造成的,但我看不出哪里出错了。
这是我的代码
client.c
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int main(int argc, char *argv[])
{
int simpleSocket = 0, simplePort = 0,returnStatus = 0, n;
char buffer[1024] = "";
struct hostent *hostinfo;
struct addrinfo simpleServer, *res;
if (3 != argc) {
fprintf(stderr, "Usage: %s <server> <port>\n", argv[0]);
exit(1);
}
simplePort = atoi(argv[2]);
memset(&simpleServer, 0, sizeof simpleServer);
simpleServer.ai_family = …Run Code Online (Sandbox Code Playgroud)