logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

FBB::InetAddress - Converting between host byte order and network byte order

Author

       Frank B. Brokken (f.b.brokken@rug.nl).

libbobcat-dev_6.07.01                               2005-2025                          FBB::InetAddress(3bobcat)

Bobcat

       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.

Bobcat Project Files

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       Debian Bobcat project files:

       o      libbobcat6: debian package containing the shared library, changelog and copyright note;

       o      libbobcat-dev: debian package containing the static library, headers, manual pages, and  developer
              info;

Bugs

       None Reported.

Description

       Computers  differ  their  word-byte  order,  called  `endianness’. A little-endian computer has its least
       significant byte at the byte having the lower address of a two-byte value, whereas a big-endian  computer
       has  its least significant byte at at the byte having the higher address of a two-byte value. In order to
       allow these computers to communicate over over Internet, hostbyteorder was  designed.  Objects  of  the
       class  FBB::InetAddress  may  be used to convert between network byte order and host byte order (and vice
       versa).

       The class only has a few public members. Most members are protected, and  FBB::InetAddress  is  therefore
       primarily  used  as  a  base class from which other classes are derived. In practice there will be little
       need to construct objects of the class FBB::InetAddress, which is primarily a support class for  the  FBB
       socket-classes.

       Internally, all data are stored in network byte order.

       As  the  class’ constructors depend on the proper functioning of members of the FBB:GetHostent class, the
       class’ objects can only be constructed when the host whose name or address is searched can be resolved by
       a name resolution process, e.g., bind(1).

       Objects of the class FBB::InetAddress store address information about a host in a structsockaddr_in data
       member. A structsockaddr_in is the data  type  used  to  represent  socket  addresses  in  the  Internet
       namespace.  It has the following members:

       o      sa_family_tsin_family:
              This identifies the address family or format of the socket address.  It holds the value AF_INET.

       o      structin_addrsin_addr:
              This is the Internet address of the host machine stored as a binary value.

       o      size_tshortintsin_port:
              This field holds the port number.

Example

       #include <iostream>

       #include <bobcat/inetaddress>
       #include <bobcat/exception>

       using namespace std;
       using namespace FBB;

       InetAddress X()
       {
           class A: public InetAddress
           {
               public:
               A(uint16_t port)
               :
                   InetAddress(port)
               {}
           };

           return A(2000);
       }

       int main(int argc, char **argv)
       try
       {
           InetAddress const &ia = X();

           cout << "A InetAddress was constructed for port " << ia.port() <<
                   endl;
           cout << "It has the generic `ANY’ address: " <<
                   ia.dottedDecimalAddress() << endl;
       }
       catch (exception const &e)
       {
           cout << "Exception: " << e.what() << endl;
       }

Files

bobcat/inetaddress - defines the class interface

Inherits From

       -

Member Functions

       o      uint16_tport()const:
              Accessor returning the object’s port value.

       o      std::stringdottedDecimalAddress()const:
              Accessor  returning the object’s Internet address as a dotted decimal string. If the address could
              not be determined, an FBB::Exception object is thrown.

       o      size_tsize()const:
              Accessor returning the size of the object’s sockaddr_in (address) information.

       o      sockaddrconst*sockaddrPtr()const:
              Accessor returning the pointer to the object’s sockaddr data member.

       o      sockaddr_inconst*sockaddr_inPtr()const:
              Accessor returning the pointer to the object’s sockaddr_in data member.

Name

       FBB::InetAddress - Converting between host byte order and network byte order

Namespace

FBB
       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are defined in the
       namespace FBB.

Protected Constructors

       o      InetAddress(std::stringconst&host,uint16_tport):
              This constructor expects a host name or dotted decimal address and and an  (size_t)  port  number,
              and  determines  the  host’s  address  information.  An  FBB::Exception exception is thrown if the
              address could not be determined.

       o      InetAddress(uint16_tport):
              This constructor constructs the `generic’ address information that is used when constructing, e.g.
              server sockets.

       o      InetAddress(sockaddr_inconst&address):
              This constructor constructs an FBB::InetAddress object from an initialized sockaddr_in object.  It
              is primarily used to promote a sockaddr_in to an FBB::InetAddresss.

       The (public) copy and move constructors (and assignment operators) are available.

Protected Member Functions

       o      sockaddr*sockaddrPtr():
              This member returns the object’s address information as a pointer to a modifiable structsockaddr.
              This allows (contrary to the public member having the same name) derived objects to manipulate the
              object’s address information directly.

       o      sockaddr_in*sockaddr_inPtr():
              This member returns the  object’s  address  information  as  a  pointer  to  a  modifiable  structsockaddr_in.  This  allows (contrary to the public member having the same name) derived objects to
              manipulate the object’s address information directly.

See Also

bind(1), bobcat(7), gethostent(3bobcat), socketbase(3bobcat)

Synopsis

#include<bobcat/inetaddress>
       Linking option: -lbobcat

See Also