pans
2017-08-30 71c92f101b6c8b4a678a8c3cfe2d8edbf488efa4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//
// Created by pansen on 2017/8/24.
//
#include <string.h>
#include "FunctionalProc.h"
#include "FunctionalUDPPeer.h"
 
bool UDPPacking::proc(uint8_t *buffer, size_t buffSize)
{
    FUPHeader* fupHeader ;
    memcpy(fupHeader,buffer, sizeof(fupHeader));
 
    ret = fupHeader->magic!=123? false: true;
 
    if(!ret)
        return false;
 
    if(!tFlag)
    {
        seq = fupHeader->seq;
        magic = fupHeader->magic;
        parts = fupHeader->parts;
        size = fupHeader->size;
 
        minSeq = seq;
        maxSeq = seq + parts - 1;
        num=parts;
 
        dataSize = sizeof(fupHeader)- sizeof( fupHeader->data);
    }
 
    fupHeader->data;
 
    if( tFlag == 0 &&  magic > 1)
    {
        tFlag=1;
        memcpy(tempData,fupHeader->data,dataSize);
        num--;
    }
    else
    {
        if(fupHeader->parts <= maxSeq && fupHeader->parts)
        {
            return false;
        }
        else
        {
            ret = parts == fupHeader->parts;
            if(!ret)
                return false;
            memcpy(tempData+(fupHeader->seq - minSeq),fupHeader->data,dataSize);
            num--;
            if(num == 0){
                tFlag =0;
                //触发回调
 
 
            }
        }
    }
}