#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