irc und sockets?



  • Hallo,

    Habe gerade ein IRC Server aufgestellt.

    telnet localhost 6667
    NICK tobby
    USER x y z a
    JOIN #testt

    Und ich bin im testt Channel.
    Ich habe nun folgender Code:

    int s;
    
    	struct sockaddr_in srv;
    
    	s = socket(AF_INET, SOCK_STREAM, 0);
    
    	if (s == -1)
    
    	{
    
    		perror("socket failed()");
    
    		return (char *) 2;
    
    	}
    
    	srv.sin_addr.s_addr = inet_addr("127.0.0.1");
    
    	srv.sin_port = htons( (unsigned short int) 6667);
    
    	srv.sin_family = AF_INET;
    
    	if (connect(s, (struct sockaddr*) &srv, sizeof(srv)) == -1)
    
    	{
    
    		perror("connect failed()");
    
    		return (char *) 3;
    
    	}
    	bytes = recv (s, buffer, sizeof(buffer) -1, 0);
    	buffer[bytes] = '\0';
    	printf("%s", buffer);
    	memset (buffer, '\0', sizeof(buffer));
    
    	send (s, "NICK toppy\r\n", sizeof("NICK toppy\r\n"), 0);
    	sleep(1);
    	send (s, "USER bla blo bli ble\r\n", sizeof("USER bla blo bli ble\r\n"), 0);
    	sleep(1);
    	send (s, "JOIN #testt\r\n", sizeof("JOIN #testt\r\n"), 0);	
    
    	close(s);
    

    Leider funktioniert es damit nicht!
    Ich komme nicht in den Channel?



  • strlen statt sizeof



  • fehler1 schrieb:

    strlen statt sizeof

    hilft nicht!



  • hi,

    was genau funktioniert nicht - funktioniert das senden komplett nicht?
    und bitte lass das sleep() weg. das braucht man nicht.

    blan



  • Anders gefragt - was soll funktionieren? Du sendest drei Zeilen ohne Fehlerüberprüfung und ohne die Antwort abzuwarten und schließt dann sie Verbindung. Was erwartest Du als Ergebnis?



  • LordJaxom schrieb:

    Anders gefragt - was soll funktionieren? Du sendest drei Zeilen ohne Fehlerüberprüfung und ohne die Antwort abzuwarten und schließt dann sie Verbindung. Was erwartest Du als Ergebnis?

    dass ich auf dem irc server, sehe dass sich das programm mit hilfe dem nick toppy einloggt?



  • zeig doch mal dein ganzen code, sodass wir ihn testen können.

    blan


Anmelden zum Antworten