#pragma interface struct in_addr; class InetAddress { in_addr *haddr; public: InetAddress(const in_addr *); InetAddress(const InetAddress &); void operator=(const InetAddress &); static InetAddress getByName(const char *); static InetAddress getLocalHost(); bool operator==(const InetAddress &); string getHostName() const; in_addr getAddress() const; string toString() const; ~InetAddress(); }; class Socket { protected: InetAddress addr; int localport, port; int fd; public: Socket(bool stream = true); Socket(int fd); int connect(const InetAddress &addr,int port); int connect(const char *host,int port); int bind(const InetAddress &addr,int port); int bind(int port); const InetAddress &getInetAddress() const { return addr; } bool active() const { return fd != -1; } int getLocalPort() const { return localport; } int getPort() const { return port; } int getfd() const { return fd; } void setTcpNoDelay(bool); ~Socket(); };