2014-03-06 1 views
0

내가 잘못한 것이 우연이 아니기 때문에이 질문을 게시하고 있습니다. 최근에 숙제의 일부로 select() API를 사용하여 클라이언트 - 서버 대화 형 파일 공유 응용 프로그램을 코딩했습니다. 내 노트북에서 완벽하게 작동합니다. 그러나 그것이 대학 서버에서 실행되도록하라는 말을 들었습니다. 그게 내 프로젝트가 테스트되는 곳이기 때문입니다. 제 신청서가 제대로 작동하고 프로젝트를 제출했는지 확인했습니다.'userConnect()'메소드 호출은 건너 뜁니다.

내 앱이 시작될 때 나중에 getMYIPAddress() 메소드를 호출하여 호스트의 로컬 IP 주소를 가져 와서 나중에 자체 연결을 플래그하는 데 사용합니다. 이제 문제는,이 메서드에서 '< <'을 제거하면 'userConnect()'루틴을 건너 뜁니다.

void getMyIPAddress (char* command, char* port) { 
    struct hostent *he; 
    struct in_addr ipv4addr; 
    char dnsIP[] = "8.8.8.8";         // Google DNS IP 
    char dnsPort[] = "53" ;          // Google DNS TCP Port 
    // Converting IP to struct in_addr type  
    inet_pton(AF_INET, dnsIP, &ipv4addr); 
    // getting host details from IP address 
    he = gethostbyaddr(&ipv4addr, sizeof ipv4addr, AF_INET); 
    cout << "BAZINGA!" << endl; 
    // Connecting to google DNS to get IP address of this process 
    userConnect (he->h_name, dnsPort, port, command); 
} 

나는이 불필요한 'cout'을 제출하기 전에 제거했습니다. 이제 google DNS에 연결하고 IP 주소를 검색하는 userConnect()를 입력하지 않습니다. 나는 그것을 지키면 잘 작동한다.

저는이 질문을 게시하여 귀중한 시간을 낭비했습니다. 너가 이것을 일으키는 원인이 될지도 모른 무슨을 이해할 수 있으면, 너는 나의 좌절을 편해질 것이다.

EDIT :: @ Tanmay 's Answer : "연결하기 전에 userConnect() 루틴에 < <을 옮겼습니다. 작동하지 않았습니다." " 'userConnect()'에 버그가 없습니다. 호출 될 때와 마찬가지로 작동합니다."

편집 : 어디서 잘못되었는지 깨달았습니다. 후속 게시물을 참조하십시오.

Variable is being changed for some reason

감사합니다, sarath.

+0

userConnect()를 입력하지 않는다고 어떻게 알 수 있습니까? userConnect() 내부에 디버그 인쇄물을 넣었으므로 디버그 인쇄물이 인쇄되는 것을 보지 못했습니까? (만약 그렇다면, 몇 가지 이유 : cout을 비우지 않거나 print 문에 도달하기 전에 실행이 블로킹되지 않았거나 print 문이 수행되지 않은 조건부 경로에 있거나 둘 이상의 정의가있는 경우 userConnect (예 : 인수 오버로드로 인해) 및 호출중인 디버그 인쇄를 넣은 것이 아니거나 (아마도 누군가) #define을 사용하여 게임을하고있는 것입니다. –

+0

Jeremy,이 질문을 공개하도록 사과드립니다. . 나는 내 모바일에서 그것을 닫을 수 없었다. 아무리해도 나는 나의 지위를 편집했다. 감사. – user3329166

답변

0

gethostbyaddr 또는 userConnect에 cout으로 인해 해결되는 버그가있을 수 있습니다. 아마도 출력 버퍼를 비우는 것이 원인 일 수 있습니다.

가능한 경우 다른 코드로 바꾸고 실험 결과를 공유하십시오.

행운을 빈다.

+0

'gethostbyaddr'은 sys/socket.h의 메소드입니다! 버그 일 가능성이 없습니다! 또한 userConnect가 전혀 호출되지 않습니다. 내 편집을 참조하십시오. – user3329166