FBB::InetAddress(3bobcat) | Network Byte Order | FBB::InetAddress(3bobcat) |
FBB::InetAddress - Converting between host byte order and network byte order
#include <bobcat/inetaddress>
Linking option: -lbobcat
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, host byte order 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 struct sockaddr_in data member. A struct sockaddr_in is the data type used to represent socket addresses in the Internet namespace. It has the following members:
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
-
The (public) copy and move constructors (and assignment operators) are available.
#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; }
bobcat/inetaddress - defines the class interface
bind(1), bobcat(7), gethostent(3bobcat), socketbase(3bobcat)
None Reported.
Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.
This is free software, distributed under the terms of the GNU General Public License (GPL).
Frank B. Brokken (f.b.brokken@rug.nl).
2005-2022 | libbobcat-dev_6.02.02 |