2013-05-02 3 views
-7

hostport에 연결해야합니다. 포트는 const이지만 쉘에서 host 변수를 입력해야합니다. 오류가 있습니다.C의 호스트에 연결

int main(int argc, char ** argv) 
{ 
    if (argc<2){ 
     printf("Need more arguments\n"); 
     return 1; 
    } 
    int sock; 
    if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0){ 
     perror("socket creating error"); 
     return 1; 
    } 

    struct sockaddr_in addr; 
    addr.sin_family = AF_INET; 
    addr.sin_port = htons(22222); 
    addr.sin_addr.s_addr = argv[1]; // try to conect host 
... 
} 
+0

무엇이 오류입니까? 그리고, 당신의 질문은 무엇입니까? –

+0

질문은 어떻게 해결할 수 있습니까? –

+1

오류에 대해 더 구체적으로 설명해야합니다. 그렇지 않을 경우 도움을 드릴 수 없습니다. –

답변

4

당신은 그와 같은 s_addr에 호스트를 할당 할 수 없습니다. 당신은 당신이 POSIX 인 경우에, 그렇지 않으면 당신은 그래서 inet_addr(), gethostbyname(), gethostbyaddr()과 같은 것들을 사용할 수 있습니다 getaddrinfo()s_addr

에 대한 올바른 형식으로 문자열 호스트 이름/IP 주소로 변환해야합니다. 핵심은 전환을해야한다는 것입니다.

나는 몇 가지 예제 클라이언트/서버 코드에 대한 구글을 제안 할 것이다 ... 그것의 톤이있다. 여기에 포함되어 있습니다.

관련 문제