字符到字符[1024] 错误 - UDP 互联网协议

Char to Char[1024] error - UDP Internet Protocol

本文关键字:字符 UDP 互联网 协议 1024 错误      更新时间:2023-10-16

代码:

int SendDG(char TOSEND, int IRES, SOCKET SSOCK, sockaddr_in RADD)
    {
        char Data[1024]=TOSEND;
        int BufLen = 1024;
        int iResult = IRES;
        SOCKET SendSocket = SSOCK;
        sockaddr_in RecvAddr = RADD;
           //---------------------------------------------
        // Send a datagram to the receiver
        wprintf(L"Sending info to the receiver...n");
        iResult = sendto(SendSocket,
                         Data, BufLen, 0, (SOCKADDR *) & RecvAddr, sizeof (RecvAddr));
        if (iResult == SOCKET_ERROR) {
            wprintf(L"sendto failed with error: %dn", WSAGetLastError());
            closesocket(SendSocket);
            WSACleanup();
            return 1;
        }
    }

错误:

智能感知:预期聚合使用"{...}"进行初始化 对象错误 C2440:"正在初始化":无法从"char"转换为 '字符 [1024]"

一个问题会很好。

但我想:在第三行你写道:

char Data[1024]=TOSEND;

其中Data是一个char数组,TOSEND是一个普通的char。因此,您无法将纯char分配给char数组。可能是你想要类似的东西

char Data[1024];
Data[0] = TOSEND;

但我不这么认为。我假设TOSEND应该是某种指向应该发送的数据的指针。

如果您只想发送TOSEND的内容(就像代码中的情况一样),那么:

  1. 摆脱这个:

    char Data[1024]=TOSEND;

    int BufLen = 1024;

  2. 更改此设置:

    iResult = sendto(SendSocket, Data, BufLen, ...);

    iResult = sendto(SendSocket, &TOSEND, sizeof(TOSEND), ...);

使用 strcpy(Data,TOSEND); 而不是 Data[1024]=TOSEND希望它能解决问题。