Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef WIN32
- #include<stdio.h>
- #include<inttypes.h>
- #endif// WIN32
- #define LEN 260 // 2 command, 2 id, 1 tamanho, 255 payload
- void create_request(uint16_t command, uint16_t id, uint16_t len, char * pay, char * request){
- request[0] = command & 255;
- request[1] = (command >> 8) & 255;
- request[2] = id & 255;
- request[3] = (id >> 8) & 255;
- request[4] = len;
- uint16_t i = 0, j = 5;
- for(i; i < (5 + len); i++, j++){
- request[j] = pay[i];
- }
- for(i = 0; i < 5; i++) {
- printf("%d \n", request[i]);
- }
- }
- void get_request(char * pay, uint16_t * request){
- request[0] = (pay[1] << 8 | pay[0]);
- request[1] = (pay[3] << 8 | pay[2]);
- request[2] = pay[4];
- uint16_t i = 5, j = 3, end = i + request[2];
- for(i; i < end; i++, j++){
- request[j] = pay[i];
- }
- }
- int main(){
- char request[LEN];
- char c[5] = {'a', 'a', 'a', 'a', 'a'};
- create_request(900, 700, 5, c, request);
- uint16_t result[LEN];
- get_request(request, result);
- #ifdef WIN32
- uint16_t i = 0;
- for(i; i < 3 + result[2]; i++){
- if(i < 3) printf("%d \n", result[i]);
- else printf("%c \n", result[i]);
- }
- #endif // WIN32
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement