#ifndef __SOCKET_H__ #define __SOCKET_H__ #include #include #include #include #include class Socket : public Handle { public: Socket() throw (GeneralException); Socket(const Socket &); virtual ~Socket() {} bool SetLocal(const String &, int = 0); bool Connect(const String &, int); bool Listen(); Socket Accept() throw (GeneralException); bool IsConnected(); bool IsListening(); virtual bool CanRead(); virtual bool CanWrite(); virtual String GetName(); int GetPort(); void CloseWrite(); void CloseRead(); private: Socket(int s); bool connected, listening, writeclosed, readclosed; }; #endif