00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef MODULE_NET_TCP_H
00018 #define MODULE_NET_TCP_H
00019
00020 #include "module_net.h"
00021
00022 #include <sys/types.h>
00023 #include <sys/ioctl.h>
00024 #include <sys/socket.h>
00025
00026 #include <netinet/in.h>
00027 #include <arpa/inet.h>
00028 #include <unistd.h>
00029 #include <netdb.h>
00030
00033 const unsigned int MODULE_NET_TCP_MAX_CLIENTS = 2;
00034
00036 class module_net_tcp : public module_net
00037 {
00038 public:
00039 module_net_tcp( void );
00040
00041 virtual int connect( unsigned int port );
00042 virtual int connect( const char* server, unsigned int port );
00043 virtual int disconnect( void );
00044
00045 virtual int send_msg( const char* msg, unsigned int size, int flags = 0 );
00046 virtual int recv_msg( char* buffer, unsigned int size, int flags = 0 );
00047
00048 virtual int has_msg( void );
00049 virtual int get_status( void );
00050
00051 virtual bool has_connection( void );
00052
00053 virtual int mod_load( void );
00054 virtual int mod_unload( void );
00055
00056 virtual int handle_msg( const char* );
00057
00061 virtual char* get_name( void )
00062 {
00063 return( "module_net_tcp" );
00064 }
00065
00066 private:
00067
00068 int s;
00069 int c;
00070
00071 sockaddr_in sock_addr;
00072 sockaddr_in client_addr;
00073
00076 static unsigned int num_instances;
00077 };
00078
00079 #endif