2017-06-06 32 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); 
}