Winsock C TCP套接字

Voi*_*tar 4 c sockets tcp winsock

我之前在Python中使用过TCP套接字.它在C中看起来非常相似但我无法获得任何工作.socket(AF_INET, SOCK_STREAM, 0);返回-1,这当然表示错误.我怎么会这么快走错路?如果你可以帮我解决这个问题,那就太好了,但如果你能给我一些简单的,简单的骨头源代码,那将是非常有帮助的.它甚至不需要做任何事情,也不需要处理错误.我只需要看看如何正确创建服务器套接字,绑定它,监听它,接受客户端以及如何创建和连接客户端套接字.我可以自己弄清楚所有的花里胡哨.

谢谢!

Aar*_*otz 9

你有没有打过WSAStartup任何其他的winock电话?


dre*_*lax 8

WSAStartup在使用套接字之前,需要使用该函数初始化WinSock .Python在Windows上实现套接字可能会自动调用它,因此您不必担心它,但是直接使用WinSock时,WSAStartup在任何其他WinSock调用之前调用是很重要的,当您的程序完成套接字时,您需要调用它WSACleanup.

WSAData data;

if (WSAStartup(MAKEWORD(2, 2), &data) != 0)
{
    // unable to initialise WinSock, time to quit
}

// WinSock has been successfully initialised, time to make sockets!
int s = socket(...);

// After all WinSock stuff is done, balance out your WSAStartup with a cleanup:
WSACleanup();
Run Code Online (Sandbox Code Playgroud)