• Domingo 22 de Diciembre de 2024, 18:41

Autor Tema:  Sockets, Una Clase, Un Metodo Para Enviar Y Recibi  (Leído 2303 veces)

Piet

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Sockets, Una Clase, Un Metodo Para Enviar Y Recibi
« en: Viernes 17 de Noviembre de 2006, 03:34 »
0
Hola, tengo una confusion grande en la cabeza :P, quizas es el cansancio...
Lo que pasa es que hice un codigo para mandar un mensaje por sockets, es así:
Código: Text
  1. public void Manden(string mensaje)
  2.         {
  3.             byte[] message = System.Text.Encoding.ASCII.GetBytes(mensaje);
  4.             TcpListener listener;
  5.             try
  6.             {
  7.  
  8.                 IPAddress localAddr = IPAddress.Parse("127.0.0.1");
  9.                 TcpListener listener = new TcpListener(localAddr, 5545);
  10.                 listener.Start();
  11.             }
  12.             catch (Exception ex) { }//jeje :P
  13.             Socket handler = listener.AcceptSocket();
  14.             handler.Send(message);
  15.         }
  16.  
Luego, hago uno para recibir, pero tendria que abrir otro socket... y no me gustaria, seria posible segun yo usar el mismo, dejando un clase con el socket abierto y luego hacer 1 metodo que sea mandar y otro recibir. A la hora de organizar ese codigo me confundi entero y me bloquie... estoy muy cansado, ojalá alguien me pueda ayudar en esto.
Ahora se me ocurrio hacerlo así:
Código: Text
  1. public class Sock
  2.     {
  3.         TcpListener listener;
  4.         Socket handler;
  5.         String data = "";
  6.         public void Manden(string mensaje)
  7.         {
  8.             byte[] message = System.Text.Encoding.ASCII.GetBytes(mensaje);
  9.             //TcpListener listener;
  10.             try
  11.             {
  12.  
  13.                 IPAddress localAddr = IPAddress.Parse("127.0.0.1");
  14.                 listener = new TcpListener(localAddr, 5545);
  15.                 listener.Start();
  16.             }
  17.             catch (Exception ex) { }//jeje :P
  18.             handler = listener.AcceptSocket();
  19.             handler.Send(message);
  20.         }
  21.         public void Recibir(string data)
  22.         {
  23.             byte[] bytes = new byte[1024];
  24.             int count = 0;        
  25.             do
  26.             {
  27.                 handler.Receive(bytes);                  
  28.                 data += System.Text.Encoding.ASCII.GetString(bytes, 0, count);
  29.  
  30.             } while (data.IndexOf("FIN") == -1);
  31.         }
  32.  
Esto no deberia funcionar ya que el listener no ha empezado a escuchar, solo fue declarado al igual que el handler... Ojala me echen una mano, seguro que es una estupidez.

PD: No se fijen en cosas como que no hago nada con las excepciones arrojadas, que el codigo esta recien hecho.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Sockets, Una Clase, Un Metodo Para Enviar Y Recibi
« Respuesta #1 en: Viernes 17 de Noviembre de 2006, 15:01 »
0
1-Socket a secas es muy buena idea si de aprender se trata, pero te desgastaras innecesariamente pues se puede hacer de maneras mas faciles.

2-Si necesitas un Socket para el cliente, pero en el mismo puerto, realmente es sencillo, mira:

http://www.c-sharpcorner.com/Network/SocketProgDTRP.asp
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Piet

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Sockets, Una Clase, Un Metodo Para Enviar Y Recibi
« Respuesta #2 en: Viernes 17 de Noviembre de 2006, 16:46 »
0
Lo del link ya lo he hecho varias veces, lo que queria es hacer una clase que tenga todo muy organizado, eso lo pude hacer solo que no queria abrir otro socket... pero mejor lo hago y sigo adelante, no creo que abrir un socket gaste muchos recursos en una aplicacion.
Alguien tiene por ahi un texto sobre como optimizar los recursos a la hora de programar, para tener una aplicacion mas rapida como resultado¿?
Muchas gracias.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Sockets, Una Clase, Un Metodo Para Enviar Y Recibi
« Respuesta #3 en: Viernes 17 de Noviembre de 2006, 18:06 »
0
Citar
Lo del link ya lo he hecho varias veces, lo que quería es hacer una clase que tenga todo muy organizado, eso lo pude hacer solo que no quería abrir otro socket...

Lo único que me quedo claro es que no has sido nada claro con lo que quieres.

Citar
Alguien tiene por ahi un texto sobre como optimizar los recursos a la hora de programar, para tener una aplicación mas rápida como resultado¿?
Muchas gracias.

No tengo textos, pero si se del tema, de todas formas con lo que estas haciendo no necesitaras optimizar casi que nada y de haber algo el impacto seria mas que imperceptible.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Piet

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Sockets, Una Clase, Un Metodo Para Enviar Y Recibi
« Respuesta #4 en: Viernes 17 de Noviembre de 2006, 18:49 »
0
jajaja disculpa por la poca claridez.
Programas usando sockets he hecho, no es ese el problema, solo que ayer quise hacer una clase llamad sock que tuviera un metodo para recibir y otro para enviar, hasta ahi no hay problema, lo que pasa es que yo quiero usar el mismo socket, gracias a la POO pensé que se me iba a hacer botado, pero a la hora de llevarlo a codigo me compliqué bastante, todavia ando tirando ideas en mi cabeza que las voy a probar en la noche... se tiene que poder hacer