none
ENVIO CADENA A PUERTO RRS feed

  • Pregunta

  • Tengo que enviar la cadena <SOH>q%<CR><LF> mediante conexion UDP a una IP y PUERTO concretos para la lectura de peso de una báscula que está por IP. La cadena tiene que ir de esta forma:

    SOH --> como Hexadecimal

    q --> como asci

    % --> como asci

    CR --> como Hexadecimal 

    LF --> como Hexadecimal 

    ¿COMO SE HACE?


    Diego Regueira

    lunes, 21 de noviembre de 2016 11:12

Todas las respuestas

  • Hola:

    Aquí hay un ejemplo.

    https://msdn.microsoft.com/es-es/library/tst0kwb1(v=vs.110).aspx

    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    
    public class UDPListener 
    {
        private const int listenPort = 11000;
    
        private static void StartListener() 
        {
            bool done = false;
    
            UdpClient listener = new UdpClient(listenPort);
            IPEndPoint groupEP = new IPEndPoint(IPAddress.Any,listenPort);
    
            try 
            {
                while (!done) 
                {
                    Console.WriteLine("Waiting for broadcast");
                    byte[] bytes = listener.Receive( ref groupEP);
    
                    Console.WriteLine("Received broadcast from {0} :\n {1}\n",
                        groupEP.ToString(),
                        Encoding.ASCII.GetString(bytes,0,bytes.Length));
                }
    
            } 
            catch (Exception e) 
            {
                Console.WriteLine(e.ToString());
            }
            finally
            {
                listener.Close();
            }
        }
    
        public static int Main() 
        {
            StartListener();
    
            return 0;
        }
    }

    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    
    class Program 
    {
        static void Main(string[] args) 
        {
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
                ProtocolType.Udp);
    
            IPAddress broadcast = IPAddress.Parse("192.168.1.255");
    
            byte[] sendbuf = Encoding.ASCII.GetBytes(args[0]);
            IPEndPoint ep = new IPEndPoint(broadcast, 11000);
    
            s.SendTo(sendbuf, ep);
    
            Console.WriteLine("Message sent to the broadcast address");
        }
    }

    Saludos.


    http://electronica-pic.blogspot.com

    domingo, 27 de noviembre de 2016 21:15