我正在尝试使用代码块进行套接字编程。

#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/

10-09 00:13