2012-04-12 4 views
2

나는 클라이언트 코드에서이를 사용하여 나의 기본적인 채팅 서버와 클라이언트에 대한 내 모든 테스트를 완료했습니다. "localhost"를C의 특정 IP 주소에 연결 하시겠습니까?

struct sockaddr_in server; 
    struct hostent * hp; 

    server.sin_family = PF_INET; 
    hp = gethostbyname("localhost"); 
    if (hp == NULL) 
    { 
    perror("Unknown host"); 
    return EXIT_FAILURE; 
    } 

강조가에 이 코드는 정상적으로 작동합니다. 이제 저는 두 대의 컴퓨터 사이에서 테스트하려고합니다. 연결하려는 서버의 이름/주소를 지정하는 방법을 잘 모릅니다. 무엇을 변경해야합니까?

답변

3

변경할 필요가 없습니다. "localhost""192.168.0.1" 또는 "stackoverflow.com"으로 대체하면 올바르게 작동합니다.

gethostbyname은 쓸모없는 것으로 표시되었으므로 getaddrinfo으로 대체해야합니다.

편집

getnameinfo ->

+0

난 당신이 대답을 게시 이후 내가 위로 읽어 봤는데 그럼에도 불구하고, 매우 혼란 getnameinfo에서의 인수를 찾을 수 getaddrinfo. 좋은 설명을 권할 수 있습니까? – New2This

+0

나는 그가'getaddrinfo'를 의미한다고 생각합니다. getnameinfo는 역 검색을위한 것입니다 (주소 => 호스트 이름) –

+0

맞습니다. 나는'getaddrinfo'를 의미했습니다, 미안 해요. –

1

아, 당신은 gethostbyname 기능에 어떤 IP 주소를 전달할 수 있습니다

hp = gethostbyname("74.125.224.73"); 

또는

hp = gethostbyname("google.com"); 

가 IP 주소를 받게됩니다.

관련 문제