CLR: .Net / Mono / Boo / Otros CLR > C#
Sockets, Una Clase, Un Metodo Para Enviar Y Recibi
(1/1)
Piet:
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 ---public void Manden(string mensaje) { byte[] message = System.Text.Encoding.ASCII.GetBytes(mensaje); TcpListener listener; try { IPAddress localAddr = IPAddress.Parse("127.0.0.1"); TcpListener listener = new TcpListener(localAddr, 5545); listener.Start(); } catch (Exception ex) { }//jeje :P Socket handler = listener.AcceptSocket(); handler.Send(message); } 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 ---public class Sock { TcpListener listener; Socket handler; String data = ""; public void Manden(string mensaje) { byte[] message = System.Text.Encoding.ASCII.GetBytes(mensaje); //TcpListener listener; try { IPAddress localAddr = IPAddress.Parse("127.0.0.1"); listener = new TcpListener(localAddr, 5545); listener.Start(); } catch (Exception ex) { }//jeje :P handler = listener.AcceptSocket(); handler.Send(message); } public void Recibir(string data) { byte[] bytes = new byte[1024]; int count = 0; do { handler.Receive(bytes); data += System.Text.Encoding.ASCII.GetString(bytes, 0, count); } while (data.IndexOf("FIN") == -1); } 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:
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
Piet:
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:
--- 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...
--- Fin de la cita ---
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.
--- Fin de la cita ---
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.
Piet:
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
Navegación
Ir a la versión completa