Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/04/2010, 16:34
chusterboy
 
Fecha de Ingreso: febrero-2010
Mensajes: 35
Antigüedad: 14 años, 2 meses
Puntos: 1
Problema Sockets

hey q onda, ahora regreso con el siguiente problema, he desarrollado un aplicacion que implementa sockets la cual funciona a la perfeccion , puedeo enviar y recibir mensajes entre cliente/servidor y cliente/cliente, el problema viene que ahora lo que quiero hacer es es que cuando recibo un mensaje por parte del servidor, invocar a una clase la cual contiene una GUI, aqui es donde el problema surge, la GUI se invoca pero "toda trabada", no me responde y no hace nada y no se a q se deba, intente metiendo esta clase en un nuevo hilo pero ps nada, no funciona, aqui pongo mi codigo:

Esto es funcional:
private void Recibir(IAsyncResult ar)
{
try
{
socketCliente.EndReceive(ar);
mensajeRecibidoServidor = Encoding.ASCII.GetString(datosRecibidos);
MessageBox.Show("mensaje remoto recibido:" + mensajeRecibidoServidor); ;
datosRecibidos = new byte[1024];
socketCliente.BeginReceive(datosRecibidos, 0, datosRecibidos.Length, SocketFlags.None, new AsyncCallback(Recibir), null);
}
catch (Exception ex)
{
}
}


pero si pongo lo siguiente (lo que esta en rojo):

private void Recibir(IAsyncResult ar)
{
try
{
socketCliente.EndReceive(ar);
mensajeRecibidoServidor = Encoding.ASCII.GetString(datosRecibidos);
MessageBox.Show("mensaje remoto recibido:" + mensajeRecibidoServidor); ;

MiClase obj=new MiClase();
obj.Visible=true;
obj.MetodoQueMuestraLaGUI(mensajeRecibidoServidor) ;


datosRecibidos = new byte[1024];
socketCliente.BeginReceive(datosRecibidos, 0, datosRecibidos.Length, SocketFlags.None, new AsyncCallback(Recibir), null);
}
catch (Exception ex)
{
}
}


aqui el cliente puede seguir recibiendo mensajes y las procesa, y tambien me muestra la GUI pero como mencione antes, "esta trabada", no me deja hacer nada sobre la GUI, posiciono el mouse sobre esa GUI y aparece el raton con el reloj de arena, el cual quiere decir que el programa no responde, aclaro, solo la GUI no responde, por que el programa del cliente sigue enviando y recibiendo peticiones

alguiem que me diga el porq hace este?, como solucionarlo?

De antemano gracias.