#include <arpa/inet.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char** argv) {
    uint32_t hl = 0xBADFACED;
    uint32_t nl = htonl(hl);
    assert(nl == 0xEDACDFBA);
    hl = ntohl(nl);
    assert(hl == 0xBADFACED);

    uint16_t hs = 0xDEAD;
    uint16_t ns = htons(hs);
    assert(ns == 0xADDE);
    hs = ntohs(ns);
    assert(hs == 0xDEAD);

    const char* addr_str = "8.8.4.4";
    struct in_addr* addr = malloc(sizeof addr);
    inet_aton(addr_str, addr);
    assert(strcmp(inet_ntoa(*addr), addr_str) == 0);

}
