socket不能用作函数

时间:2012-05-04 18:37:33

标签: c++ udp winsock2

您好我已经完成了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。

任何人都可以帮我解决这个错误吗?

提前致谢!

1 个答案:

答案 0 :(得分:5)

不要以与函数相同的方式命名变量。

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

此外,正如@chris指出的那样,您可以使用范围解析运算符(::),以便在全局命名空间中查找函数socket

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