我正在尝试使用代码块进行套接字编程。
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <ws2tcpip.h>
int main()
{
int sock;
sock = socket(AF_INET6, SOCK_STREAM, 0);
if(sock == -1)
{
printf("\n Socket not created %d\n", sock);
}
return 0;
}
创建socket的行给出了-1。我缺少什么帮助?
最佳答案
您需要调用WSAStartup
函数来启动进程对Winsock DLL的使用。
另外,在末尾调用WSACleanUp
函数。
从链接:WSAStartup
函数必须是
应用程序或DLL。它允许应用程序或DLL指定Windows的版本
需要套接字并检索特定Windows套接字实现的详细信息。
应用程序或DLL只能在
成功调用WSAStartup
。
上面的链接也给出了一个很好的例子。
也:
每次成功调用WSACleanup
函数时,应用程序都必须调用WSAStartup
函数
函数被调用。这意味着,例如,如果应用程序调用WSAStartup
三次,它必须调用WSACleanup
三次。前两个呼叫
除了减少一个内部计数器外,什么都没有;最后一个任务调用
为任务执行所有必要的资源释放。
关于c - 使用代码块进行套接字编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17140895/