X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fio%2Fraw_socket.hxx;h=833b75c3ba3d8d6c4d929f34eef744478ed0546e;hb=adb7db9229db1d869b254ac18f1471bed464c508;hp=1af74ce0e8d946baaeda685d84c748fbb3705ec7;hpb=878b504f8e044bc0e59903caa8641492421b76d8;p=simgear.git diff --git a/simgear/io/raw_socket.hxx b/simgear/io/raw_socket.hxx index 1af74ce0..833b75c3 100644 --- a/simgear/io/raw_socket.hxx +++ b/simgear/io/raw_socket.hxx @@ -17,18 +17,21 @@ You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef SG_IO_SOCKET_HXX #define SG_IO_SOCKET_HXX -#include +//#include -#if defined(__APPLE__) || defined(__FreeBSD__) -# include -#endif +//#if defined(__APPLE__) || defined(__FreeBSD__) +//# include +//#endif +struct sockaddr_in; +struct sockaddr; + namespace simgear { @@ -37,28 +40,31 @@ namespace simgear */ class IPAddress { + mutable struct sockaddr_in* addr; public: - IPAddress () {} + IPAddress () : addr(0) {} IPAddress ( const char* host, int port ) ; - IPAddress ( struct sockaddr* addr, size_t len ); + ~IPAddress(); + + static bool lookupNonblocking(const char* host, IPAddress& addr); + IPAddress( const IPAddress& other ); + const IPAddress& operator=(const IPAddress& other); + + bool isValid () const; void set ( const char* host, int port ) ; const char* getHost () const ; unsigned int getPort() const ; + void setPort(int port); + unsigned int getIP () const ; unsigned int getFamily () const ; static const char* getLocalHost () ; bool getBroadcast () const ; - void setPort(unsigned int port); - const struct sockaddr_in* getAddress() const - { return &_raw; } - - const size_t getAddressSize() const - { return sizeof(struct sockaddr_in); } -private: - struct sockaddr_in _raw; + unsigned int getAddrLen() const; + sockaddr* getAddr() const; }; @@ -68,7 +74,7 @@ private: class Socket { int handle ; - + public: Socket () ; @@ -85,7 +91,7 @@ public: int listen ( int backlog ) ; int accept ( IPAddress* addr ) ; int connect ( const char* host, int port ) ; - int connect ( const IPAddress& addr ) ; + int connect ( IPAddress* addr ) ; int send ( const void * buffer, int size, int flags = 0 ) ; int sendto ( const void * buffer, int size, int flags, const IPAddress* to ) ; int recv ( void * buffer, int size, int flags = 0 ) ;