Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: TomaSs en 27 Julio 2010, 06:45 AM

Título: Como crear Cliente IRC [VB.NET]
Publicado por: TomaSs en 27 Julio 2010, 06:45 AM
Hola.
Pues abro este tema para ver si pueden echarme una mano con la creación de un pequeño cliente de irc en vb.net, ya que he buscado en todos los rincones de google y no he logrado encontrar nada que funcione, solo algunos codigos fuente pero no funcionan.
La idea es hacer algo simple, que se conecte a un servidor y que por ejemplo entre a un canal y obtenga la lista de nicks, y que me permita enviar mensajes al canal y recibir los mensajes que son recibidos en el canal.
Aver si me podeis echar una mano y orientarme un poco, y si sabeis de algun ejemplo de codigo que funcione para probarlo y modificarlo me sería también de gran ayuda.
Muchas gracias de antemano! Saludos!
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: [D4N93R] en 27 Julio 2010, 15:30 PM
Primero antes de comenzar a hacerlo debes tener conocimientos de sobre Conexiones TCP/IP, Manejo de Streams, y eso.

Revisa primero un poco el foro con esos temas, luego simplemente estableces una conexión al servidor IRC y le pasas los comandos necesarios.
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: TomaSs en 27 Julio 2010, 17:29 PM
Con el manejo de Streams no tengo problema en principio.
Asi que miraré a ver si encuentro algo de conexiones tcp/ip, pero si sabes de algún post especialmente interesante te agradecería que me lo pasaras.
De todas formas, muchísimas gracias, me sirve para empezar a indagar... :)
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: [D4N93R] en 27 Julio 2010, 21:09 PM
Esta el de Hendrix:
http://foro.elhacker.net/net/tutorial_sockets_en_c-t165986.0.html (http://foro.elhacker.net/net/tutorial_sockets_en_c-t165986.0.html)

Y el mío:
http://foro.elhacker.net/vbnet/tutorial_tcpip_sockets_c-t287407.0.html;msg1422739 (http://foro.elhacker.net/vbnet/tutorial_tcpip_sockets_c-t287407.0.html;msg1422739)

Complementate con los dos. Y cualquier cosa escribes en este mismo post.

Saludos!
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: TomaSs en 28 Julio 2010, 06:34 AM
D4N93R, pues he copiado todo el código del tutorial de Hendrix y al ejecutar no se por que razón me da este error:

(http://r.i.elhacker.net/cache?url=http://img22.imageshack.us/img22/1496/errorvbd.jpg)

Sabes porqué puede ser?
A! utilizo el visual studio 2010

Gracias! ;)
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: [D4N93R] en 28 Julio 2010, 14:46 PM
Postea el código completo, en donde creas la instancia de socket, es la IP a la que lo estás asociando.
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: TomaSs en 28 Julio 2010, 15:23 PM
IPAddress direc = Dns.GetHostEntry("localhost").AddressList[0];
            IPEndPoint Ep = new IPEndPoint(direc, 12345);
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
           
            socket.Bind(Ep);
            socket.Listen(100);


Aver si ves algo raro... :)
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: [D4N93R] en 28 Julio 2010, 15:36 PM
Dns.GetHostEntry("localhost").AddressList te regresa todas las IP asignadas al nombre del equipo que escribiste en el método, pero normalmente ahora en equipos actualizados tienes IPv6 habilitado, por lo que seguramente es la primera que te está regresando en el array.

Prueba con el segundo del array. Mejor te recomiendo mejor siempre escribir 127.0.0.1 xD

Saludos.
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: TomaSs en 28 Julio 2010, 16:57 PM
Ahí está! con el 2º del array ya no da el error y se queda escuchando, vaya jefe me estas hecho! hahahaha
Pero el problema ahora es que no se mandarle mensajes desde netcat, me he bajado netcat para windows pero no se mandarle mensajes porque Hendrix no explica como hacerlo :S
Con que comando debería hacerlo?

Solucionado: Ya esta encontrado, en el netcat le meto el siguiente comando "nc 127.0.0.1 12345" mientras el programa esta escuchando y ya puedo enviarle mensajes. :)

Muchas gracias D493R
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: [D4N93R] en 29 Julio 2010, 00:16 AM
Seguro, no hay problemas, pero una pregunta para qué usas NC?

Estás haciendo un cliente IRC o un Server IRC?

Saludos!
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: TomaSs en 30 Julio 2010, 07:04 AM
Intento hacer un cliente, pero como pregunté sobre como empezar a hacerlo y tu me recomendaste los tutoriales de Hendrix, etc, pues ya continué las preguntas aquí. Así que digamos que se ha liado un poco el tema... :S

Pero bueno, mediante consola, con el tuto de Hendrix ya me he conseguido conectar a IRC y recibir algo de informacion y tal, pero claro ahora yo quiero hacerlo en un formulario en vez de en consola, pero el problema está en que creo que tengo que usar multitrheading o eventos.
El cliente siempre va a estar escuchando al servidor de IRC entonces que me convendría mas utilizar, hilos o eventos???
A! la conexion la hago con sockets.

PD: perdona por el pequeño lio D4N93R ;)
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: [D4N93R] en 30 Julio 2010, 15:14 PM
Hehe, tranquilo que eso siempre pasa.

Ok, bueno, vas a tener que usar ambos, un subproceso que siempre esté pendiente del irc, lo mejor es que lo hagas en una clase que abstraiga el hecho de que hay un subproceso corriendo, esa clase tiene que tener un método Start o Connect, para comenzar la connection, además, antes de connectarte tienes que subscribirte a los métodos de la clase que son los que van a darte los resultados.

No es muy difícil, puedes tener un evento de DataReceived, o algo así, con un argumento en donde esté todo bien parseado sobre la data recibida. Por ejemplo, qué tipo de mensaje es, si es privado o no, de qué usuario proviene, todo eso,para así no estar parseando ni procesando la data en el formulario. Te suscribes a ese evento en el formulario y ya.

Luego un método para escribir al IRC, un método que te liste los usuarios, o los channels a los que estás unido, otro que traiga todos los channels del server,.

Hay mucho tema, pero comienza poco a poco y le vas añadiendo funcionalidades.

Si tienes dudas sobre Threading o sobre Delegados, hay temas en el foro, puedes buscar en google con algo así: site:elhacker.net Delegados OR Delegates

Un saludo!
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: TomaSs en 30 Julio 2010, 17:09 PM
Bueno pues ya lo he conseguido con Threading (aunque acostandome ayer a las 9 de la mañana jaja). Me recibe todo, mensajes que le mando y todo :)

Ahora lo que me toca es rallarme para controlar todo lo que recibo y envio, que es cada cosa, sacar lista de usuarios del canal, controlar el recibo de privados, etc, pero eso no creo que me cueste demasiando, revisando un poco el protocolo de IRC para ver como van los comandos exactamente... :)

Muchas gracias por la ayuda D4N93R! ya te comentare como va la cosilla, y si tengo alguna duda mas ya vendre a volverte loco! jaja ;)
Título: Re: Como crear Cliente IRC [VB.NET]
Publicado por: [D4N93R] en 30 Julio 2010, 17:18 PM
XD Tranquilo, xD

Te recomiendo que te compres unas cuantas botellas de Coca-Cola hahaha