字符到字符[1024] 错误 - UDP 互联网协议
Char to Char[1024] error - UDP Internet Protocol
代码:
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
的内容(就像代码中的情况一样),那么:
-
摆脱这个:
char Data[1024]=TOSEND;
int BufLen = 1024;
-
更改此设置:
iResult = sendto(SendSocket, Data, BufLen, ...);
到
iResult = sendto(SendSocket, &TOSEND, sizeof(TOSEND), ...);
使用 strcpy(Data,TOSEND);
而不是 Data[1024]=TOSEND
希望它能解决问题。
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 从udp接收帧对于人脸识别来说太慢
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何使用 boost asio 通过 UDP 套接字发送无符号字符的 std::vector?
- UDP以无符号字符的形式接收数据
- 字符到字符[1024] 错误 - UDP 互联网协议