0

尝试使用 recvfrom 函数在 2D Char 数组中收集 1261 UDP 数据包

define RxBuffSize   1514
define TotalPacket  1261

char    RxBuff[RxBuffSize]      =   {0};

我尝试使用的代码是:

for (Count =0; Count <= TotalPacket; Count++)
{
    recvfrom(sock, RxBuff[Count],RxBuffSize,0,(struct sockaddr *)&Sender_addr, &Sender_addrlen);        
}

或者不知道如何开始只是想将所有 1261 个数据包存储到 RxBuff 中,以便我可以通过其数据包编号访问数据包数据,以便通过其数据包编号从数据包中获取数据。

printf("%x ",Payload[packetno][data]);
4

1 回答 1

0

您将需要足够的空间来连续存储所有数据包。您可以静态分配二维数组

char RxBuff [RxBuffSize][1261];

或使用 calloc

char *RxBuff = calloc(RxBuffSize, 1261);

然后像你的问题一样循环 recvfrom 1261 次:

for (Count = 0; Count <= TotalPacket; Count++)
{
    recvfrom(sock, RxBuff[Count],RxBuffSize,0,(struct sockaddr *)&Sender_addr, &Sender_addrlen);
}
于 2017-06-06T20:20:35.010 回答