Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

SocketAddress.h

Go to the documentation of this file.
00001 #ifndef __SOCKETADDRESS_H
00002 #define __SOCKETADDRESS_H
00003 
00004 #ifdef WIN32
00005 #include <winsock2.h>
00006 #else
00007 #include <netinet/in.h> // for sockaddr_in
00008 #endif
00009 
00010 #include "IpAddress.h"
00011 
00012 class SocketAddress : public BasicObject {
00013 public:
00014     SocketAddress();
00015     SocketAddress(IpAddress, unsigned short);
00016     SocketAddress(struct sockaddr_in*);
00017     SocketAddress(const SocketAddress&);
00018     virtual ~SocketAddress();
00019 
00020     void setSocketAddress(struct sockaddr_in*);
00021     void setSocketAddress(const IpAddress&, unsigned short);
00022     void setIpAddress(const IpAddress&);
00023     void setPort(unsigned short);
00024     void setPort(const char*);
00025     void setPort(string);
00026 
00027     struct sockaddr_in* getSockAddrStruct();
00028     OS_SPEC_SOCKLEN* getSockAddrStructLen();
00029     unsigned short getPort();
00030     IpAddress getIpAddress();
00031     bool isZero();
00032 
00033     bool read(std::istream&);
00034     bool read(const char*);
00035     bool read(string);
00036 
00037     virtual void toStream(std::ostream&);
00038     const char* toCStr();
00039 
00040 private:
00041     static void initSockAddr(struct sockaddr_in* sockAddr, unsigned int ipAddr, int port);
00042 
00043     // These variables are all kept synchronized with each other
00044     IpAddress m_ipAddr;
00045     unsigned short m_port;
00046     struct sockaddr_in m_sockAddrStruct;
00047     OS_SPEC_SOCKLEN m_sockAddrStructLen;
00048 
00050     char m_cstr[MAX_IP_ADDR_STR + 1 + 5];
00051 };
00052 
00053 #endif

Generated at Thu Jul 11 13:31:52 2002 for Peekabooty by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001