enum opcodes {RRQ=1,WRQ=2,DATA=3,ACK=4,ERR=5}; int build_request(char *msg, unsigned short opcode, char *filename, char *mode); int build_ack(char *msg, unsigned short block); unsigned short get_shortval( char *p ); int get_opcode(char *msg); int get_blocknum(char *msg); void print_msg( char *msg, int len ); int wait_for_response(int sk,struct sockaddr_in *s,char *buff, int max);