使用代码块进行套接字编程

时间:2013-06-17 05:25:41

标签: c sockets

我正在尝试使用代码块进行Socket编程。

#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;
}

创建套接字的行给了我-1。我错过了什么帮助?

1 个答案:

答案 0 :(得分:3)

您需要调用WSAStartup函数来启动进程使用Winsock DLL。

另外,最后调用WSACleanUp函数。

从链接WSAStartup

WSAStartup 函数必须是第一个名为的Windows套接字函数 应用程序或DLL。它允许应用程序或DLL指定Windows的版本 需要套接字并检索特定Windows套接字实现的详细信息。 应用程序或DLL之后只能发出更多Windows套接字函数 已成功致电WSAStartup

上述链接也给出了一个很好的例子。

此外:

应用程序必须在WSACleanup的每个成功时间调用WSAStartup函数  函数被调用。这意味着,例如,如果应用程序调用{​​{1}} 三次,必须拨打WSAStartup三次。前两次拨打WSACleanup  除了减少内部计数器外什么都没有;最后WSACleanup调用该任务 为任务完成所有必要的资源释放。