【问题标题】:recvfrom for storing in 2D Char arrayrecvfrom 用于存储在 2D Char 数组中
【发布时间】:2017-06-06 07:18:02
【问题描述】:

尝试使用 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]);

【问题讨论】:

    标签: udp recvfrom


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 2012-10-12
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      相关资源
      最近更新 更多