00001 #ifndef __J2K__UDP_Socket_HPP__ 00002 #define __J2K__UDP_Socket_HPP__ 00003 00004 #include <j2k/Fred/Standard.hpp> 00005 #include <j2k/Net/UDP/UnixSocket.hpp> 00006 #include <j2k/Net/TFTP/TFTP_Option.hpp> 00007 00008 //#define UDP_CALLBACK() void* stupid 00009 00010 #define UDP_CALLBACK() parser->opcodeDispatcher(me->buffer,result) 00011 00012 00013 class UDP_Socket { 00014 public: 00015 00016 inline UDP_Socket(); 00017 inline virtual ~UDP_Socket(); 00018 00019 inline SOCKET getSocket(); 00020 inline void setSocket( SOCKET socket ); 00021 00022 inline virtual BOOL send( void* msg, size_t msgLen ) = 0; 00023 00024 BOOL send( void* msg, size_t msgLength, struct sockaddr_in* dest ); 00025 00026 void PrintIP( ULONG ipname ); 00027 void PrintInfo(); 00028 00029 protected: 00030 00031 // The socket that we are using 00032 SOCKET mySocket; 00033 00034 void getHostData( char* host ); 00035 hostent* hostdata; 00036 00037 char buffer[ UDP_BUFFER_SIZE ]; 00038 struct sockaddr_in server; // The address of the server 00039 }; 00040 00041 00042 #endif 00043 00044