VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /usr/share/emscripten/tests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/emscripten/tests/799.cpp
#include <netdb.h>
#include <stdint.h>
#include <string.h>
#include <assert.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>

#ifdef __EMSCRIPTEN__
#include <arpa/inet.h>
#endif

#define uint16 uint16_t

class NetworkAddress {
private:
    sockaddr_storage address;               ///< The resolved address
public:

    /**
     * Create a network address based on a unresolved host and port
     * @param hostname the unresolved hostname
     * @param port the port
     * @param family the address family
     */
    NetworkAddress(const char *hostname = "", uint16 port = 0, int family = AF_UNSPEC)
    {
        memset(&this->address, 0, sizeof(this->address));
        this->address.ss_family = family;
        this->SetPort(port);
    }

    uint16 GetPort() const;
    void SetPort(uint16 port);
};

/**
 * Get the port.
 * @return the port.
 */
uint16 NetworkAddress::GetPort() const
{
    printf("Get PORT family: %d\n", this->address.ss_family);
    switch (this->address.ss_family) {
        case AF_UNSPEC:
        case AF_INET:
            return ntohs(((const struct sockaddr_in *)&this->address)->sin_port);

        case AF_INET6:
            return ntohs(((const struct sockaddr_in6 *)&this->address)->sin6_port);

        default:
            throw 0;
    }
}

/**
 * Set the port.
 * @param port set the port number.
 */
void NetworkAddress::SetPort(uint16 port)
{
    printf("Set PORT family: %d, port: %d\n", this->address.ss_family, port);
    switch (this->address.ss_family) {
        case AF_UNSPEC:
        case AF_INET:
            ((struct sockaddr_in*)&this->address)->sin_port = htons(port);
            break;

        case AF_INET6:
            ((struct sockaddr_in6*)&this->address)->sin6_port = htons(port);
            break;

        default:
            throw 0;
    }
}

int main() {
    NetworkAddress na("127.0.0.1", 3979);
    printf("PORT: %d\n", na.GetPort());
    return 0;
}

VaKeR 2022