套接字不能用作函数
socket cannot be used as a function
嗨,我做过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);
相关文章:
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么虚函数不能是静态的和全局的?
- 为什么继承的受保护构造函数不能公开?
- C++为什么类成员函数不能重新声明,但普通函数可以
- 为什么在C++中使用关系运算符创建的模板函数不能对字符串正常工作?
- 成员函数不能为集合迭代器和const_iterator的输入重载(但可以为其他 STL 迭代器重载)
- 为什么模板函数不能作为模板模板参数传递?
- 为什么 free 函数不能在 C 数组上运行,而 std::begin 在某些情况下可以在 C++14 中运行?
- 构造函数不能用于启发性化
- C 错误 - 函数不能超载
- 有没有办法使成员函数不能从构造函数调用
- 为什么模板函数不能是模板类的友元模板函数
- "Framework::Graphics::Material"的默认构造函数不能被引用 - 它是一个已删除的函数
- lower_bound()函数不能在调试模式下编译
- 为什么函数不能正确强制转换指针(从基类到派生类)
- 显式默认函数不能声明为 constexpr,因为隐式声明不是 constexpr
- 琐碎的默认构造函数不能是 constexpr?
- 函数不能嵌套,那么如何在C++中执行此操作
- 错误:成员函数不能在其类之外声明
- 错误-仅返回类型不同的函数不能重载.c++