代码:
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;
}
}
错误:
智能感知:使用' {...}'进行初始化预计总计 对象错误C2440:'初始化' :无法转换为' char'至 ' char [1024]'
答案 0 :(得分:1)
一个问题本来不错。
但我猜:在你写的第三行:
char Data[1024]=TOSEND;
其中Data
是char
- 数组,TOSEND
是普通char
。因此,您无法将纯char
分配给char
数组。可能是你想要像
char Data[1024];
Data[0] = TOSEND;
但我不这么认为。我假设TOSEND
应该指向应该发送的数据的某种指针。
答案 1 :(得分:0)
如果您只想发送TOSEND
的内容(因为您的代码中似乎是这种情况),那么:
摆脱这个:
char Data[1024]=TOSEND;
int BufLen = 1024;
更改此内容:
iResult = sendto(SendSocket, Data, BufLen, ...);
到iResult = sendto(SendSocket, &TOSEND, sizeof(TOSEND), ...);
答案 2 :(得分:0)
使用strcpy(Data,TOSEND);
代替Data[1024]=TOSEND
希望它能解决问题。