0

嗨,我做过 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。

谁能帮我解决这个错误?

提前致谢!

4

1 回答 1

5

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

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

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

SOCKET socket = ::socket(AF_INET, SOCK_DGRAM, 0);
于 2012-05-04T18:39:31.827 回答