2012-05-04 58 views
0

嗨,我已經完成了Java和C#,最近在Linux環境中的C/C++中做了一個模塊。我決定在Windows中用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); 

當我編譯這個Netbeans中它與此錯誤消息出現包括.h和iostream。

任何人都可以幫我解決這個錯誤嗎?

在此先感謝!

回答

5

不要以與函數相同的方式命名變量。

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

此外,由於@克里斯指出,你可以使用範圍解析運算符(::),這樣函數socket在全局命名空間中擡起頭來:

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

揭掉謝謝我有剛看到我自己!我感到有點傻了!大聲笑感謝您的快速反應,但! :) – geekman92

+2

我想指出,這只是一個範圍問題。使用SOCKET套接字= ::套接字(AF_INET,SOCK_DGRAM,0);'將工作得很好,並允許使用所需的變量名稱。 – chris

+0

@chris不錯的一個,編輯我的答案,並補充說。謝謝! – mfontanini