尝试使用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]);
答案 0 :(得分:0)
您需要足够的空间来连续存储所有数据包。您可以静态分配2D数组
char RxBuff [RxBuffSize][1261];
或使用calloc
char *RxBuff = calloc(RxBuffSize, 1261);
然后像你的问题一样循环回收1261次:
for (Count = 0; Count <= TotalPacket; Count++)
{
recvfrom(sock, RxBuff[Count],RxBuffSize,0,(struct sockaddr *)&Sender_addr, &Sender_addrlen);
}