Beispiel #1
0
int _tmain(int argc, NLchar **argv)
#endif
{
    NLaddress   addr1;
    NLchar      string[NL_MAX_STRING_LENGTH];

    if(nlInit() == NL_FALSE)
        printErrorExit();

    _tprintf(TEXT("nlGetString(NL_VERSION) = %s\n\n"), nlGetString(NL_VERSION));

    if(nlSelectNetwork(NL_IP) == NL_FALSE)
        printErrorExit();

    /* init the string improperly with NO null termination */
    memset(string, 'a', sizeof(string));

    _tprintf(TEXT("Test nlStringToAddr with unterminated string\n"));
    if(nlStringToAddr(string, &addr1) == NL_FALSE)
        printError();

    _tprintf(TEXT("Test nlGetAddrFromName with unterminated string\n"));
    if(nlGetAddrFromName(string, &addr1) == NL_FALSE)
        printError();

    _tprintf(TEXT("Test nlGetAddrFromNameAsync with unterminated string\n"));
    nlGetAddrFromNameAsync(string, &addr1);
    printError();

    _tprintf(TEXT("Done\n"));
    nlShutdown();
    return 0;
}
Beispiel #2
0
// accepts "%i.%i.%i.%i[:%l]" as input
bool StringToNetAddr(const std::string& string, NetworkAddr& addr, std::string* errorStr) {
	if(getNLaddr(addr) == NULL) return false;
	
	if(!isStringValidIP(string)) {
		SetNetAddrValid(addr, false);
		return false;
	}
	
	if(nlStringToAddr(string.c_str(), getNLaddr(addr)) == NL_FALSE) {
		errors << "StringToNetAddr: cannot use " << string << " as address: " << GetLastErrorStr() << endl;
		if(errorStr) *errorStr = GetLastErrorStr();
		ResetSocketError();
		return false;
	}
	
	return true;
}
Beispiel #3
0
int main(int argc, char **argv)
{
    NLboolean   isserver = NL_FALSE;
    NLsocket    serversock;
    NLsocket    clientsock;
    NLaddress   addr;
    NLbyte      server[] = "127.0.0.1:25000";
    NLenum      type = NL_UNRELIABLE; /* Change this to NL_RELIABLE for reliable connection */
    NLbyte      string[NL_MAX_STRING_LENGTH];

    if(!nlInit())
        printErrorExit();

    printf("nlGetString(NL_VERSION) = %s\n\n", nlGetString(NL_VERSION));
    printf("nlGetString(NL_NETWORK_TYPES) = %s\n\n", nlGetString(NL_NETWORK_TYPES));

    if(!nlSelectNetwork(NL_IP))
        printErrorExit();

    if(argc > 1)
    {
        if(!strcmp(argv[1], "-s")) /* server mode */
            isserver = NL_TRUE;
    }

    if(isserver)
    {
        /* create a server socket */
        serversock = nlOpen(25000, type); /* just a random port number ;) */

        if(serversock == NL_INVALID)
            printErrorExit();

        if(!nlListen(serversock))       /* let's listen on this socket */
        {
            nlClose(serversock);
            printErrorExit();
        }
        nlGetLocalAddr(serversock, &addr);
        printf("Server address is %s\n", nlAddrToString(&addr, string));
        mainServerLoop(serversock);
    }
    else
    {
        /* create a client socket */
        clientsock = nlOpen(0, type); /* let the system assign the port number */
        nlGetLocalAddr(clientsock, &addr);
        printf("our address is %s\n", nlAddrToString(&addr, string));

        if(clientsock == NL_INVALID)
            printErrorExit();
        /* create the NLaddress */
        nlStringToAddr(server, &addr);
        printf("Address is %s\n", nlAddrToString(&addr, string));
        /* now connect */
        if(!nlConnect(clientsock, &addr))
        {
            nlClose(clientsock);
            printErrorExit();
        }
        mainClientLoop(clientsock);
    }

    nlShutdown();
    return 0;
}