gpt4 book ai didi

c++ - 创建套接字 C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:26 28 4
gpt4 key购买 nike

我是新来的,我正在尝试测试我自己的套接字程序。

如何创建套接字?这是我正在尝试做的事情:

int main(int argc, char *argv[]) {
int socket_addr;
struct sockaddr_in server;
char message[100], server_message[100];

// Creates the socket
socket_addr = socket(AF_INET, SOCK_STREAM, 0);
if (socket_addr == -1) {
cout << "Could not create the socket!";
} else {
//...
}
}

编辑:这两个链接对理解套接字有很大帮助。请看他们:

1) http://beej.us/guide/bgnet/
2) https://msdn.microsoft.com/en-us/library/windows/desktop/ms742213(v=vs.85).aspx

最佳答案

既然你说你在 Windows 上,我假设你显示的代码是完整的代码,它不工作的原因是因为还没有调用 WSAStartup,这个函数初始化网络库,应在任何网络操作(如创建套接字)之前调用:

//your includes here..

#pragma comment(lib, "ws2_32.lib") // link with the network library

int main(int argc, char *argv[]) {
int socket_addr;
struct sockaddr_in server;
char message[100], server_message[100];

int wsaRes = 0;
WSADATA wsaData = {0};
wsaRes = WSAStartup(MAKEWORD(2, 2), &wsaData);
if(wsaRes != 0)
{
std::cerr << "WSAStartup failed!";
return -1;
}
// Creates the socket
socket_addr = socket(AF_INET, SOCK_STREAM, 0);
if (socket_addr == INVALID_SOCKET) {
cout << "Could not create the socket!";
} else {
//...
}
}

关于c++ - 创建套接字 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39718615/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com