Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/08/2009, 05:41
lmalvarez
 
Fecha de Ingreso: julio-2009
Mensajes: 82
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Enviar datos desde asp a c#

Solucionado (o eso creo)


Lo que hice fue introducir la siguiente linea dentro del bucle de escucha

handler = socket.Accept();

Os dejo el código de los sockets por si os interesa

Página ASP (C#)
Código asp:
Ver original
  1. System.Net.IPAddress direc = System.Net.Dns.GetHostEntry("localhost").AddressList[0];
  2.         int puerto = 12345;
  3.         System.Net.IPEndPoint Ep = new System.Net.IPEndPoint(direc, puerto);
  4.         System.Net.Sockets.Socket socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
  5.         Byte[] SendBytes;
  6.         Byte[] RecvBytes = new Byte[255];
  7.  
  8. mensaje = "Tag no válido en el sistema";
  9.             SendBytes = Encoding.UTF8.GetBytes(mensaje);
  10.             //SendBytes = Encoding.ASCII.GetBytes(mensaje);
  11.             try
  12.             {
  13.                 socket.Connect(Ep);
  14.             }
  15.             catch (Exception e)
  16.             {
  17.                 Response.Write(e.ToString());
  18.             }
  19.             if (socket.Connected)
  20.             socket.Send(SendBytes, SendBytes.Length, System.Net.Sockets.SocketFlags.None);

Aplicación C#
Código c#:
Ver original
  1. private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  2.         {
  3.  
  4.             System.Net.IPAddress direc = System.Net.Dns.GetHostEntry("localhost").AddressList[0];
  5.             int puerto = 12345;
  6.             System.Net.IPEndPoint Ep = new System.Net.IPEndPoint(direc, puerto);
  7.             System.Net.Sockets.Socket socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
  8.             socket.Bind(Ep);
  9.             socket.Listen(100);
  10.            
  11.  
  12.  
  13.             byte[] bytes = new byte[1024]; //Declaramos un array de bytes de longitud 1024
  14.             int count;
  15.             String data = ""; //Declaramos data, que sera donde se almacenaran los datos
  16.  
  17.             do //Bucle Do/While
  18.             {
  19.                 handler = socket.Accept();
  20.                 count = handler.Receive(bytes); //Recibimos los datos enviados y lo guardamos en cout.
  21.                 data = System.Text.Encoding.UTF8.GetString(bytes, 0, count); //Lo codificamos a cadena (ya que se envian como bytes)
  22.                 if (data != "") //Mientras lo recibido no sea exit + \n (es decir, exit + Intro, ya que intro tambien se envia)
  23.                 {
  24.                     //Console.Write("Se a recibido: {0}", data); //Mostramos lo recibido pro pantalla
  25.                     MessageBox.Show(data);
  26.                     data = "";
  27.                 }
  28.  
  29.  
  30.             } while (true);
  31. }