#define PEN 2 #define ERASER 3 #define CURSOR 4 #define TEXT 5 #define CLEAN 6 #define DISC 7 #define CONN 8 #define QUIT 9 struct PenRecord { unsigned char msgType; unsigned char size; short X; short Y; }; struct TextRecord { unsigned char msgType; unsigned char size; short X; short Y; char buf[256]; }; struct EraserRecord { unsigned char msgType; unsigned char size; short X; short Y; }; struct CursorRecord { unsigned char msgType; unsigned char filler; short X; short Y; }; struct ConnRecord { unsigned char msgType; unsigned char size; char name[40]; }; struct CleanRecord { unsigned char msgType; }; struct DiscRecord { unsigned char msgType; }; struct QuitRecord { unsigned char msgType; }; union Record { struct PenRecord pr; struct TextRecord tr; struct EraserRecord er; struct CursorRecord cr; struct CleanRecord clr; struct DiscRecord dr; struct ConnRecord nr; struct QuitRecord qr; };