IRC Bot - Probleme mit Namenauflösung



  • Hallo,

    ich versuche gerade mich mit einem Programm mit irc.gamesurge.net zu verbinden. Ich kriege auch 11 IP's raus, die ich alle durchgehe, aber irgendwie bekomme ich bei jeder nen Socket Error.

    Könnt ihr euch das mal anschaun???

    IRC_CONNECTION::IRC_CONNECTION ( char* hostname, int port )
    {
    	static WSADATA			wsa;
    	static SOCKET			s;
    	static SOCKADDR_IN		addr;
    	static HOSTENT*			hostinfo;
    	int						counter		= 0;
    
    	this->m_host = new char [ strlen (hostname) + 1 ];
    	this->m_port =  port;
    
    	(void)strcpy (this->m_host, hostname );
    
    	if ( WSAStartup( MAKEWORD(2,0), &wsa ) != 0 )
    	{
    		printf ("ERROR: Winsock2 konnte nicht erfolgreich initialisiert werden\n");
    		return;
    	}
    
    	if ( ( s = socket (AF_INET, SOCK_STREAM, 0 ) ) == INVALID_SOCKET )
    	{
    		printf ("ERROR: Socketstream konnte nicht erfolgreich erstellt werden.\n");
    		return;
    	}
    
    	if ( (hostinfo = gethostbyname ( this->m_host ) ) == (HOSTENT*)NULL )
    	{
    		printf ("ERROR: IPv4 Adresse zu %s kann nicht ermittelt werden.\n", this->m_host);
    		return;
    	}
    
    	 for(int i = 0; hostinfo->h_addr_list[i]!=NULL; i++)
    	 {
    		memset(&addr,0,sizeof(SOCKADDR_IN)); 
    		addr.sin_family=AF_INET;
    		addr.sin_port=htons(m_port); 
    		(void)memcpy(&addr.sin_addr, hostinfo->h_addr_list[counter],4);
    
    		if ( connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR)) == SOCKET_ERROR )
    		{
    			continue;
    		}
    
    		break;
    	 }
    
    	m_socket = &s;
    }
    


  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Sollte counter nicht i sein in der for schleife?



  • tembläd schrieb:

    Sollte counter nicht i sein in der for schleife?

    ja, ist es auch
    es wird solange inkrementiert,bis das i-te element von dem array 0 ist



  • und wo steht was von "counter=counter+1" ?
    wieso brauchst du "counter", wenn counter dasselbe wie i ist ?
    Und hast du dir die IPs mal ausgeben lassen ?


Anmelden zum Antworten