#ifndef Servermsg_h #define Servermsg_h #define REG 1 #define PEN 2 #define ERASER 3 #define CURSOR 4 #define TEXT 5 #define CLEAN 6 #define DISC 7 #define CONN 8 #define QUIT 9 #define BOB 10 #define NOB 11 #define CACK 12 #define NAK 13 #define RACK 14 struct PendrawRecord { unsigned char msgType; unsigned char size; short X; short Y; }; struct TextdrawRecord { unsigned char msgType; unsigned char size; short X; short Y; char buf[256]; }; struct BOBdrawRecord { unsigned char msgType; unsigned char filler; short W; short H; short Length; unsigned char x_bits[256]; }; struct NOBdrawRecord { unsigned char msgType; unsigned char filler; short LineNo; short Length; unsigned char x_bits[256]; }; struct EraserdrawRecord { unsigned char msgType; unsigned char size; short X; short Y; }; struct CursordrawRecord { unsigned char msgType; unsigned char filler; short X; short Y; }; struct RegistRecord{ unsigned char msgType; char username[20]; char hostname[20]; char userLogin[20]; short portId; }; struct ConnectRecord{ unsigned char msgType; char toUsername[20]; char fromUsername[20]; }; struct DisconnRecord{ unsigned char msgType; char toUsername[20]; char fromUsername[20]; }; struct CAckRecord{ unsigned char msgType; char toUsername[20]; char fromUsername[20]; char hostname[20]; short portId; }; struct RAckRecord{ unsigned char msgType; char toUsername[20]; char fromUsername[20]; }; struct NakRecord{ unsigned char msgType; char toUsername[20]; char fromUsername[20]; char reason[40]; }; struct QuitconnRecord{ unsigned char msgType; char username[20]; }; union Message { struct PendrawRecord pen; struct TextdrawRecord text; struct BOBdrawRecord bob; struct NOBdrawRecord nob; struct EraserdrawRecord erase; struct CursordrawRecord cursor; struct RegistRecord regist; struct ConnectRecord conn; struct DisconnRecord disc; struct QuitconnRecord quit; struct RAckRecord rack; struct CAckRecord cack; struct NakRecord nak; }; #endif