FBB::InetAddress(3bobcat)
π NAME π
FBB::InetAddress β converting between host byte order and network byte order πβ¨
π SYNOPSIS π
#include <bobcat/inetaddress>
Linking option: -lbobcat
π¦ DESCRIPTION π¦
okay bestie, storytime, because this one actually slaps π Computers are not all built the same when it comes to word-byte order, and the whole vibe of that is called endianness. A little-endian computer keeps its least significant byte at the byte having the lower address of a two-byte value, and a big-endian computer keeps its least significant byte at the byte having the higher address of a two-byte value. Two completely different energy signatures, no cap.
Sooo, in order to allow these computers to communicate over the Internet, host byte order was designed. π Objects of the class FBB::InetAddress are what you use to convert between network byte order and host byte order (and vice versa). It's giving translator, it's giving interpreter, it's giving "we can be friends despite our endianness" π«Ά
Now, the class only has a few public members. Most members are protected, which means FBB::InetAddress is 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 β it's lowkey a support class for the FBB socket-classes, and honestly that's iconic of it π
Internally, all data are stored in network byte order. periodt.
Since 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). So if resolution says no, construction says no too. π
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:
sa_family_t sin_family: this identifies the address family or format of the socket address. It holds the valueAF_INET. π«struct in_addr sin_addr: this is the Internet address of the host machine, stored as a binary value. π₯size_t short int sin_port: this field holds the port number. π
πΈ NAMESPACE πΈ
FBB
All constructors, members, operators and manipulators mentioned in this man-page are defined in the namespace FBB. β¨
π INHERITS FROM π
-
(nothing, bestie, it's a root-level main character π)
π PROTECTED CONSTRUCTORS π
InetAddress(std::string const &host, uint16_t port)β this constructor expects a host name or dotted decimal address and an (size_t) port number, and determines the host's address information. AnFBB::Exceptionexception is thrown if the address could not be determined. πInetAddress(uint16_t port)β this constructor constructs thegenericaddress information that is used when constructing, e.g., server sockets. πInetAddress(sockaddr_in const &address)β this constructor constructs anFBB::InetAddressobject from an initializedsockaddr_inobject. It is primarily used to promote asockaddr_into anFBB::InetAddresss. π¦
The (public) copy and move constructors (and assignment operators) are available. so you can copy and move them around all you want, slay β¨
β MEMBER FUNCTIONS β
uint16_t port() constβ accessor returning the object's port value. πstd::string dottedDecimalAddress() constβ accessor returning the object's Internet address as a dotted decimal string. If the address could not be determined, anFBB::Exceptionobject is thrown. πsize_t size() constβ accessor returning the size of the object'ssockaddr_in(address) information. πsockaddr const *sockaddrPtr() constβ accessor returning the pointer to the object'ssockaddrdata member. π«sockaddr_in const *sockaddr_inPtr() constβ accessor returning the pointer to the object'ssockaddr_indata member. π«
π₯ PROTECTED MEMBER FUNCTIONS π₯
sockaddr *sockaddrPtr()β this member returns the object's address information as a pointer to a modifiablestruct sockaddr. This allows (contrary to the public member having the same name) derived objects to manipulate the object's address information directly. πsockaddr_in *sockaddr_inPtr()β this member returns the object's address information as a pointer to a modifiablestruct sockaddr_in. This allows (contrary to the public member having the same name) derived objects to manipulate the object's address information directly. π
π EXAMPLE π
here's the whole thing, copy it, run it, live your truth π
#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 π
π«Ά SEE ALSO π«Ά
bind(1), bobcat(7), gethostent(3bobcat), socketbase(3bobcat)
go read those too, bestie, iykyk π
π BUGS π
None Reported. (we stay unproblematic β¨)
π BOBCAT PROJECT FILES π
https://fbb-git.gitlab.io/bobcat/: gitlab project page π
Debian Bobcat project files:
libbobcat6: debian package containing the shared library, changelog and copyright note π¦libbobcat-dev: debian package containing the static library, headers, manual pages, and developer info π¦
π BOBCAT π
Bobcat is an acronym of Brokkenβs Own Base Classes And Templates. cute, right? π₯Ή
π COPYRIGHT π
This is free software, distributed under the terms of the GNU General Public License (GPL). π«Ά
πΈ AUTHOR πΈ
Frank B. Brokken (f.b.brokken@rug.nl). π
and that's the whole page, bestie!! this one shipped in libbobcat-dev_6.15.01, dated 2005-2026, and it lives at FBB::InetAddress(3bobcat). go forth and convert those byte orders, you absolute icon π¦β¨π
π¦ where this page comes from
- ubuntu stonking: libbobcat-dev 6.15.01-1 Β· GPL-3.0-or-later WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms