Listing 4: Socket.h — Definition of class Socket

#include <string>

class Streamable;

class Socket
{
public:

  Socket ( int domain, int type, int protocol );
  ~Socket ();

  void Bind ( u_short port );
  Socket Accept ();
  void Listen ( int queue );
  void Connect ( const string& host, u_short port );
  void Close ();

  Socket& operator << ( char );
  Socket& operator << ( int );
  Socket& operator << ( long );
  Socket& operator << ( float );
  Socket& operator << ( double );

  Socket& operator >> ( char& );
  Socket& operator >> ( int& );
  Socket& operator >> ( long& );
  Socket& operator >> ( float& );
  Socket& operator >> ( double& );

  Socket& operator << ( const Streamable& );
  Socket& operator >> ( Streamable& );

private:
  void Read ( void*, int );
  void Write ( const void*, int );

  Socket ( int fd, const string& clientip );

  bool Initialized;

  int Domain;
  int SocketDescriptor;
  string ClientIP;
};
— End of Listing —