Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.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++ 字符对字符[1024]错误-UDP Internet协议_C++_Udp - Fatal编程技术网

C++ 字符对字符[1024]错误-UDP Internet协议

C++ 字符对字符[1024]错误-UDP Internet协议,c++,udp,C++,Udp,代码: 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; //--

代码:

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: %d\n", WSAGetLastError());
            closesocket(SendSocket);
            WSACleanup();
            return 1;
        }
    }
错误:

IntelliSense:聚合应使用“{…}”进行初始化 对象错误C2440:“正在初始化”:无法从“字符”转换为 '字符[1024]'


问个问题就好了

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

char Data[1024]=TOSEND;
其中,
Data
是一个
char
-数组,
TOSEND
是一个普通的
char
。因此不能将普通的
char
分配给
char
数组。可能是你想要像这样的东西

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

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

如果您只想发送
TOSEND
的内容(在您的代码中似乎是这样),那么:

  • 摆脱这个:

    char数据[1024]=TOSEND

    int BufLen=1024

  • 更改此项:

    iResult=sendto(SendSocket,Data,BufLen,…)

    iResult=sendto(SendSocket,&TOSEND,sizeof(TOSEND),…)

  • 使用
    strcpy(数据,发送)而不是
    数据[1024]=TOSEND

    希望它能解决问题。

    是的,很抱歉你是对的。但现在的问题是,如果
    TOSEND
    不是指向以null结尾的字符串的指针,那么将其复制到数据[1024]有什么用呢?我的意思是它可能只复制到数据。请纠正我,因为我有点困惑。塔克斯