c# sockets network-programming streamreader streamwriter

streamread no puede leer ningún dato de NetworkStream en c#,



sockets network-programming (1)

el código final:

class Program { static void Main(string[] args) { TcpListener server = null; try { Int32 port = 3000; // IPAddress localAddr = IPAddress.Parse(IPAddress.Any); server = new TcpListener(IPAddress.Any, port); server.Start(); // Buffer for reading data Byte[] bytes = new Byte[256]; String data = null; while (true) { Console.Write("Waiting for a connection... "); TcpClient client = server.AcceptTcpClient(); Console.WriteLine("Connected!"); data = null; NetworkStream stream = client.GetStream(); byte[] aaa = { 0, 1, 0, 2, 0, 11, 3, 0, 1, 0, 4, 195, 128 }; stream.Write(aaa, 0, aaa.Length); int i; while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) { data = System.Text.Encoding.ASCII.GetString(bytes, 0, i); Console.WriteLine("Received: {0}", data); data = data.ToUpper(); byte[] msg = System.Text.Encoding.ASCII.GetBytes(data); stream.Write(msg, 0, msg.Length); Console.WriteLine("Sent: {0}", data); } client.Close(); } } catch (SocketException e) { Console.WriteLine("SocketException: {0}", e); } finally { server.Stop(); } Console.WriteLine("/nHit enter to continue..."); Console.Read(); } }

Tengo un sensor que tiene una ip y un puerto 192.168.2.44:3000.

Usé las herculas para conectarme al dispositivo, como puedes ver en la imagen:

enter image description here

Necesito implementar este software en c #, entonces escribo este código:

private static void Main(string[] args) { try { byte[] buffer = new byte[2048]; // read in chunks of 2KB int bytesRead; var listener = new TcpListener(IPAddress.Any, 3000); listener.Start(); NetworkStream network_stream; StreamReader read_stream; StreamWriter write_stream; var client = listener.AcceptTcpClient(); network_stream = client.GetStream(); read_stream = new StreamReader(network_stream); write_stream = new StreamWriter(network_stream); write_stream.WriteLine("00010002000B0300010004C380"); write_stream.Flush(); //veriyi gönderiyor string gelen; gelen = read_stream.ReadLine(); Console.WriteLine(gelen); Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadLine(); } }

Cuando pongo un punto de interrupción, gelen = read_stream.ReadLine(); devuelve null

http://www.hw-group.com/products/hercules/index_en.html