2012-05-04 3 views
0

안녕하세요, 저는 Java 및 C#을 완료했으며 최근 Linux 환경에서 C/C++의 모듈을 작성했습니다. C++에서 간단한 UDP 서버를 만들기로 결정했습니다.이 서버는 코딩에있어 새로운 초보자가 아닌 새로운 서버이기도합니다. 나는 몇 가지 예로서 보았다 그리고 모든이 한 줄에서 떨어져 작동하는 것 같다 :소켓을 함수로 사용할 수 없습니다.

classUDPServer.cpp: In constructor 'UDPServer::UDPServer()': 
classUDPServer.cpp:35: error: '((UDPServer*)this)->UDPServer::socket' cannot be used as a function 
    make[2]: *** [build/Debug/MinGW-Windows/classUDPServer.o] Error 1 
    make[1]: *** [.build-conf] Error 2 
    make: *** [.build-impl] Error 2 

나는 모두의 Winsock2이 : 내가 넷빈즈이를 컴파일 할 때

SOCKET socket = socket(AF_INET, SOCK_DGRAM, 0); 

가이 오류 메시지와 함께 온다 .h 및 iostream이 포함됩니다.

누구든지 나를 도와 줄 수 있습니까?

미리 감사드립니다.

답변

5

변수의 이름을 함수의 이름과 동일하게 지정하지 마십시오.

SOCKET socket = ::socket(AF_INET, SOCK_DGRAM, 0); 
+0

yer의 내가 가진 감사 : 함수 socket 글로벌 네임 스페이스에 고개되도록 :) : @ 크리스가 지적한대로

SOCKET my_socket = socket(AF_INET, SOCK_DGRAM, 0); 

또한, 당신은 범위 결정 연산자 (사용할 수 있습니다 방금 저 자신을 보았습니다! 나는 바보 같이 느낀다! 롤 귀하의 빠른 응답을 주셔서 감사합니다! :) – geekman92

+2

저는 이것이 단순히 범위 문제라는 것을 지적하고 싶습니다. 'SOCKET socket = :: socket (AF_INET, SOCK_DGRAM, 0); '을 사용하면 잘 작동하고 원하는 변수 이름을 사용할 수 있습니다. – chris

+0

@chris nice one, 내 답변을 편집하여 추가했습니다. 감사! – mfontanini

관련 문제