我正在使用 Winsock2 套接字通过 UDP 传输一些数据。我在将数组传递到 sendTo() 函数以发送数据时遇到困难。
我已经编写了一个 mySocket 类以供将来重用,并且我目前有以下方法,该方法有效。
bool MySocket::sendData()
{
short int values[] = {1000,2000,3000,4000,5000};
int ret = sendto( sd,(const char*)values, sizeof(values) , 0, (sockaddr *)&sin, sizeof(sin) );
if(ret == SOCKET_ERROR)
{
return false;
}
return true;
}
现在我想传入一个数组而不是
short int values[] = {1000,2000,3000,4000,5000};
所以新功能看起来像:
bool MySocket::sendData(short int data[])
{
short int * values = data;
int ret = sendto( sd,(const char*)&values, sizeof(data) , 0, (sockaddr *)&sin, sizeof(sin) );
if(ret == SOCKET_ERROR)
{
return false;
}
return true;
}
当函数被调用时,调用将是:
short int data[] = {1000,2000,3000,4000,5000}; //Or some other pre-assembled list of short ints
if(socket->sendData(data))
cout << "Server: Packet Sent" << endl;
else
cout << "Server_Error: Packet failed to send" << endl;
我似乎只是在获取数据或值的指针地址。我一直在玩“&”和指针,但除了第一个数字(指针指向的位置)之外,还没有找到正确的方法来传输任何东西。我主要用 C# 编写代码,现在切换回 C++ 使我的指针技能相当生疏。
我将如何传递或使用传入的数组来正确发送它?