Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Sender Code:
- const sar_cfg_t cfg = {
- .segmentSize = 28;
- .checksum = true;
- .sessionId = true;
- .reordering = false;
- .errCorrection = NO_ECC;
- };
- char message[128] = "Send this really really really long message!";
- char segments[128];
- char* segptrs[16];
- int segcount = segment(cfg,
- strlen(message), message,
- sizeof(segments)/sizeof(segments[0]), segments,
- sizeof(segptrs)/sizeof(segptrs[0]), segptrs );
- for (int i = 0; i < segcount; i++) {
- int segLen = segptrs[i+1]-segptrs[i];
- send(segLen, segptrs[i]);
- }
- // Receiver Code:
- const sar_cfg_t cfg = {
- .segmentSize = 28;
- .checksum = true;
- .sessionId = true;
- .reordering = false;
- .errCorrection = NO_ECC;
- };
- char output[128];
- char buf[128];
- reasm_state_t reasm_state;
- reasm_init(&reasm_state, cfg,
- sizeof(output), output);
- while (!reasm_state.done) {
- int msgLen = recieve(sizeof(buf), buf);
- int res = reasm_update(&reasm_state, buf, msgLen);
- }
- if(reasm_state.ok) {
- printf("%.*sn", reasm_state.len, output);
- } else {
- println("Reassembly error!");
- }
Add Comment
Please, Sign In to add comment