Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 创建套接字C++;_C++_Sockets_Websocket - Fatal编程技术网

C++ 创建套接字C++;

C++ 创建套接字C++;,c++,sockets,websocket,C++,Sockets,Websocket,我是新来的,我正在尝试测试我自己的sockets程序 如何创建套接字?以下是我想做的: 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

我是新来的,我正在尝试测试我自己的sockets程序

如何创建套接字?以下是我想做的:

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 {
    //...
    }
}

由于您说您在windows上,我假设您显示的代码是完整代码,它不工作的原因是因为尚未调用
WSAStartup
,因此此函数初始化网络库,并应在任何网络操作(如创建套接字)之前调用:

//此处包含您的内容。。
#pragma comment(lib,“ws2_32.lib”)//与网络库的链接
int main(int argc,char*argv[]){
int插座地址;
服务器中的结构sockaddr_;
字符消息[100],服务器消息[100];
int wsaRes=0;
WSADATA WSADATA={0};
wsaRes=WSAStartup(MAKEWORD(2,2)和wsaData);
如果(wsaRes!=0)
{

这个问题有点模糊,试着看看这里:@Charlie,谢谢!:d你的代码怎么了?错误是什么(如果发生错误)?你期望的行为是什么?你得到的是哪一个?这些代码看起来很好,除非你应该用
@Garf365关闭你的if语句,好吧,我在网上按照一个教程做了这一步。编译并运行了它,上面cout语句中的消息出现了…所以我假设没有创建套接字。你会怎么做你能创建那个套接字吗?
1) http://beej.us/guide/bgnet/
2) https://msdn.microsoft.com/en-us/library/windows/desktop/ms742213(v=vs.85).aspx
//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 {
    //...
    }
}