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 originalSystem.Net.IPAddress direc = System.Net.Dns.GetHostEntry("localhost").AddressList[0];
int puerto = 12345;
System.Net.IPEndPoint Ep = new System.Net.IPEndPoint(direc, puerto);
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);
Byte[] SendBytes;
Byte[] RecvBytes = new Byte[255];
mensaje = "Tag no válido en el sistema";
SendBytes = Encoding.UTF8.GetBytes(mensaje);
//SendBytes = Encoding.ASCII.GetBytes(mensaje);
try
{
socket.Connect(Ep);
}
catch (Exception e)
{
Response.Write(e.ToString());
}
if (socket.Connected)
socket.Send(SendBytes, SendBytes.Length, System.Net.Sockets.SocketFlags.None);
Aplicación C#
Código c#:
Ver originalprivate void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
System.Net.IPAddress direc = System.Net.Dns.GetHostEntry("localhost").AddressList[0];
int puerto = 12345;
System.Net.IPEndPoint Ep = new System.Net.IPEndPoint(direc, puerto);
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);
socket.Bind(Ep);
socket.Listen(100);
byte[] bytes = new byte[1024]; //Declaramos un array de bytes de longitud 1024
int count;
String data = ""; //Declaramos data, que sera donde se almacenaran los datos
do //Bucle Do/While
{
handler = socket.Accept();
count = handler.Receive(bytes); //Recibimos los datos enviados y lo guardamos en cout.
data = System.Text.Encoding.UTF8.GetString(bytes, 0, count); //Lo codificamos a cadena (ya que se envian como bytes)
if (data != "") //Mientras lo recibido no sea exit + \n (es decir, exit + Intro, ya que intro tambien se envia)
{
//Console.Write("Se a recibido: {0}", data); //Mostramos lo recibido pro pantalla
MessageBox.Show(data);
data = "";
}
} while (true);
}