Thanks in advance.
Expand|Select|Wrap|Line Numbers
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <signal.h>
- #include <assert.h>
- #include "limits.h"
- #define BUFFERSIZE 256
- #define PACKETSIZE sizeof(cloudMessage)
- typedef struct cloudMessage
- {
- int station_id;
- int location_area;
- char command[BUFFERSIZE];
- }cloudMessage;
- void serialize(cloudMessage *message, char *data);
- void deserialize(char *data, cloudMessage *message);
- void printMyMessage(cloudMessage* message);
- void serialize(cloudMessage *message, char *data)
- {
- data = (char*)malloc(sizeof(message));
- assert(data != NULL);
- memcpy(data, &message, sizeof(message));
- }
- void deserialize(char *data, cloudMessage *message)
- {
- memset(message, 0, sizeof(data));
- memcpy(message, &data, sizeof(cloudMessage));
- }
- void printMyMessage(cloudMessage *message)
- {
- printf((void*)message->location_area);
- printf((void*)message->station_id);
- printf((void*)message->command);
- }
- int main()
- {
- cloudMessage *newcloudMessage = malloc(sizeof(cloudMessage));
- newcloudMessage->location_area = 7214;
- newcloudMessage->station_id = 45632;
- strcpy(newcloudMessage->command, "HANDOVER\0");
- char data[PACKETSIZE];
- serialize(newcloudMessage, data);
- cloudMessage *tempMessage = malloc(sizeof(cloudMessage)); // To store deserialized message.
- deserialize(data, tempMessage);
- printMyMessage(tempMessage);
- return 0;
- }