Adresse de la famille non pris en charge par le protocole

Code suivant est un socket de programmation de l'échantillon pour un client TCP.

Mais lorsque je l'exécute, connect() est retourné en tant que famille d'Adresses non pris en charge par le protocole.

J'ai entendu, ce problème se produit si la plate-forme ne prend pas en charge ipv6.

Mais AF_INET, j'ai écrit est ipv4.

Aussi mon serveur, c'est-à CentOS6.4, est configuré dans un inet6 addr .

Personne ne sait pourquoi?

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int
main(){
    struct sockaddr_in server;
    int sock;
    char buf[32];
    int n;
    sock = socket(AF_INET,SOCK_STREAM,0);
    perror("socket");
    server.sin_family = AF_INET;
    server.sin_port = htons(12345);
    inet_pton(AF_INET,"127.0.0.1",&server,sizeof(server));
    connect(sock,(struct sockaddr *)&server,sizeof(server));
    perror("connect");
    memset(buf,0,sizeof(buf));
    n = read(sock,buf,sizeof(buf));
    perror("read");
    printf("%d,%s\n",n,buf);
    close(sock);
    return 0;
}
MAIS L'UTILISATION DU SERVEUR IPV4 OU IPV6

OriginalL'auteur user1345414 | 2013-12-04