2017-06-06 78 views
0

存储尝试使用recvfrom函数recvfrom的用于2D字符阵列

define RxBuffSize 1514 
define TotalPacket 1261 

char RxBuff[RxBuffSize]  = {0}; 

和我试图使用代码来收集1261 UDP分组在二维字符阵列是:

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

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

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); 
}