0
소켓을 통해 두 프로세스간에 통신하기 위해 C 프로그램을 작성 중이며 연결 함수 호출에 다음 오류가 표시됩니다.C - 연결 함수 - 잘못된 인수 오류
연결 :: 잘못된 인수 내가 연결하기 위해 호출 실종 무엇
? 도움이 될 것입니다.
이
내 코드입니다 -void conn(char *hname)
{
struct hostent *hp;
struct sockaddr_in sin;
int port = 10000;
int s, rc;
hp = gethostbyname(hname);
if (hp == NULL) {
fprintf(stderr, "host not found (%s)\n", hname);
exit(1);
}
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0) {
perror("socket:");
exit(left);
}
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
memcpy(&sin.sin_addr, hp->h_addr_list[0], hp->h_length);
rc = connect(s, (struct sockaddr *)&sin, sizeof(sin));
if (rc < 0) {
perror("connect:");
exit(rc);
}
}
오류가 모두 발생합니까? 자세한 내용을 보려면 clang으로 컴파일 해보십시오. – drum
당신의 코드를 가져 와서'char hname [] = "google.com"'을 추가하고 포트를'80'으로 변경하고 성공적으로 구글에 연결할 수있었습니다 ... 이것은 우분투 리눅스 14.04에서 이루어졌습니다. – TonyB
'struct sockaddr_in'에는 5 개의 필드가 있습니다. 넌 세 명만 채우고있어. 나는 보통 그것을 사용하기 전에 0으로 memset한다. – user3386109