您好我已经完成了Java和C#,并且最近在Linux环境中使用C / C ++编写了一个模块。我已决定在Windows中用C ++创建一个简单的UDP服务器,我也是新手,但在编码方面并不是一个完整的新手。我看过一些例子,这一切似乎与这一行有所不同:
SOCKET socket = socket(AF_INET, SOCK_DGRAM, 0);
当我在Netbeans中编译它时,会出现以下错误消息:
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.h和iostream。
任何人都可以帮我解决这个错误吗?
提前致谢!
答案 0 :(得分:5)
不要以与函数相同的方式命名变量。
SOCKET my_socket = socket(AF_INET, SOCK_DGRAM, 0);
此外,正如@chris指出的那样,您可以使用范围解析运算符(::),以便在全局命名空间中查找函数socket
:
SOCKET socket = ::socket(AF_INET, SOCK_DGRAM, 0);