home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Exec 4 / CD_Magazyn_EXEC_nr_4.iso / Recent / dev / c / GSys.lha / gsys / gmisc / GSocket.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-10-18  |  1.3 KB  |  62 lines

  1.  
  2. /* Author Anders K */
  3.  
  4. #ifndef GSOCKET_H
  5. #define GSOCKET_H
  6.  
  7. #include "winsock2.h"
  8.  
  9. #include "gsystem/GObject.h"
  10. #include "gmisc/GServer.h"
  11.  
  12. WORD WSAver;
  13. WSADATA WSAdata;
  14.  
  15. class GServer;
  16.  
  17. class GSocket : public GObject
  18. {
  19. public:
  20. //    GSocket() { memset((GAPTR)this, 0, sizeof(GSocket)); };
  21.     GSocket();
  22.     ~GSocket();
  23.  
  24.     GWORD GSocket::Init(int af, int type, int prot);
  25.  
  26.     GServer *GetGServer();
  27.     GSocket *GetNext();
  28.     GSocket *GetPrev();
  29.     BOOL SetGServer(GServer *server);
  30.     BOOL SetNext(GSocket *next);
  31.     BOOL SetPrev(GSocket *next);
  32.     BOOL SetSocket(SOCKET s);
  33.  
  34. /* SOCKET functions */
  35.     GWORD SockRecv(char *buffer, GWORD len, GWORD flags);
  36.     GWORD SockSend(char *buffer, GWORD len, GWORD flags);
  37.     GWORD SockListen();
  38.     GWORD SockBind(GSTRPTR address, GUWORD port);
  39.     GWORD SockConnect(GSTRPTR address, GUWORD port);
  40.     GWORD SockSetOpt(GWORD level, GWORD optname, char *optval, GWORD optlen);
  41.     GSocket *SockAccept();
  42.     
  43. //    GWORD SetLocalAddress(GSTRPTR address, GUWORD port);    // address==NULL means localhost
  44.  
  45. protected:
  46.     GWORD type;
  47.     GServer *MServer;
  48.     GSocket *Prev;    // if NULL: First one
  49.     GSocket *Next;    // if NULL: Last one
  50.  
  51. #ifdef GWINDOWS
  52.     hostent *Hostent;
  53.     servent *Servent;
  54.     sockaddr_in LocalAddr;
  55.     sockaddr_in PeerAddr;
  56.     SOCKET Socket;
  57. #endif
  58.  
  59. };
  60.  
  61. #endif /* GSOCKET_H */
  62.