다음은 로컬 컴퓨터의 IPv6 클라이언트 프로그램 코드입니다. 이 프로그램을 실행하면 읽기 모드와 같이 일시 중지되고 "시작 :"은 인쇄되지 않습니다. socket() 시스템 호출 행에 주석을 달면 코드 만 진행됩니다.소켓 프로그래밍, ipv6 클라이언트 프로그램이 작동하지 않음
#include<stdio.h>
#include<string.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<errno.h>
int main(int argc, char *argv[])
{
printf("Start:");
int sock;
char msg[20];
struct sockaddr_in6 server;
server.sin6_family=AF_INET6;
server.sin6_port=htons(8888);
inet_pton(AF_INET6, "127.0.0.1", &(server.sin6_addr));
sock=socket(AF_INET6, SOCK_STREAM , 0);
if(sock == -1)
{
perror("Socket Creation Failed");
return 1;
}
printf("Connecting");
if(connect(sock, (struct sockaddr *)&server , sizeof(server)) < 0)
{
perror("Connection Failed");
return 1;
}
if(read(sock, msg , sizeof(msg)) < 0)
{
perror("Reading Failed");
return 1;
}
puts(msg);
}
출력이 버퍼에 걸리지 않았는지 확인하기 위해'printf' 문장의 끝에'\ n'을 사용하여 코드를 시험해보십시오. –
''127.0.0.1 "'은 유효한 IPv6 주소가 아닙니다. – Gerhardh