[C con Clase] Cliente de irc en C

David fire ddfire en gmail.com
Mie Oct 1 04:52:20 CEST 2008


hola
lo que hago cuando tengo que programar algo como eso es primero me conecto
por telnet y hago todo a mano hasya q funque despues lo hago en codigo

2008/9/30 yo vegano <xploiting en gmail.com>

> Hola, estoy programando un cliente de irc en C. Consigo conectar,
> mando el nick, devuelvo el ping, y mando el user ident, pero no hay
> manera de pasar de ahí. He comprobado que el servidor recibia los
> comandos porque registré el tráfico con wireshark, y vi como el
> servidor me mandaba los ACK cada vez que enviaba un comando.
>
> Como puedo superar el paso de user ident?  alguna idea?
>
> Gracias, he aquí el codigo:
>
> #include <stdio.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #include <netdb.h>
>
> #define PORT 6667
> #define MAXDATASIZE 100
> #define MAX 1000
>
> int main(int argc, char *argv[])
> {
> int fd, numbytes,a;
> char buf2[MAX];
> char buf[MAXDATASIZE], mensaje[20], mensaje2[200];
> struct hostent *he;
>
> struct sockaddr_in server;
>
> he=gethostbyname(argv[1]);
>
> fd=socket(AF_INET, SOCK_STREAM, 0);
>
> server.sin_family=AF_INET;
>
> server.sin_port=htons(PORT);
> server.sin_addr=*((struct in_addr *)he->h_addr);
> bzero(&(server.sin_zero),8);
>
> connect(fd, (struct sockaddr *)&server,sizeof(struct sockaddr));
>
> numbytes=recv(fd,buf,MAXDATASIZE,0);
>
> buf[numbytes]='\0';
>
> printf("Mensaje del Servidor: %s\n",buf);
>
> send(fd,"nick spycka",211,0);
>
> numbytes=recv(fd,buf,MAXDATASIZE,0);
> buf[numbytes]='\0';
> printf("Mensaje del Servidor: %s\n",buf);
>
> gets(mensaje);
>
> send(fd,mensaje,211,0);
>
> send(fd,"user ident pereira ramos josu",50,0);
>
> numbytes=recv(fd,buf2,MAX,0);
> buf2[numbytes]='\0';
> printf("%s\n",buf2);
>
> close(fd);
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
(\__/)
(='.'=)This is Bunny. Copy and paste bunny into your
(")_(")signature to help him gain world domination.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080930/32a7ff09/attachment.html>


Más información sobre la lista de distribución Cconclase