套接字不能用作函数

socket cannot be used as a function

本文关键字:函数 不能 套接字      更新时间:2023-10-16

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

任何人都可以帮助我解决此错误吗?

提前感谢!

不要像函数一样命名变量。

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

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

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