[英]Why socket(AF_INET, SOCK_STREAM, 0) return -1?
当我尝试构建一个套接字时,我失败了。
listenSocket = socket(AF_INET, SOCK_STREAM, 0); if (listenSocket < 0) { std::cout << "ERROR: OPEN SOCKET" << listenSocket << std::endl; close(listenSocket); return; }
得到错误。
错误:打开 SOCKET-1
似乎是一个非常基本的操作,我真的不明白为什么会失败。 不幸的是,我没有其他信息可以进一步调试它。
你有什么建议吗? 提前谢谢你。
如果您在Windows 中编写任何基于套接字的代码,则需要使用WSAStartup()
启动您的应用程序。 如果没有,请将其添加到您的程序中。 此外,您需要使用WSACleanup()
完成您的应用程序。 这两个函数是特定于 Windows 的。
这是一个小样本:
int main() {
WSADATA wsaData;
int err = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (err != 0)
return 1;
//...
WSACleanup();
}
这是WSAStartuo()
MSDN页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.