none
Criar classe que devolva resposta de servidor Datagram Sockets e UDP. RRS feed

  • Pergunta

  • Olá, tenciono criar uma classe com um método que envie uma string para toda a rede (broadcast) e caso haja resposta devolva uma string. Tenho o seguinte código:

    public sealed class Class1
        {
    
            public string resposta;
    
            public async Task<string> echo()
            {
                await SendMessage("teste", 9999);
                return this.resposta;
            }
    
          
    
            private async Task SendMessage(string message, int port)
            {
                var socket = new DatagramSocket();
    
                socket.MessageReceived += SocketOnMessageReceived;
    
                using (var stream = await socket.GetOutputStreamAsync(new HostName("255.255.255.255"), port.ToString()))
                {
                    using (var writer = new DataWriter(stream))
                    {
                        var data = Encoding.UTF8.GetBytes(message);
    
                        writer.WriteBytes(data);
                        writer.StoreAsync();
                    }
                }
            }
    
            private async void SocketOnMessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args)
            {
                var result = args.GetDataStream();
                var resultStream = result.AsStreamForRead(1024);
    
                using (var reader = new StreamReader(resultStream))
                {
                    var text = await reader.ReadToEndAsync();
    
                    this.resposta = text.ToString();
                    /*
                    Windows.Management.Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        // Do what you need to with the resulting text
                        // Doesn't have to be a messagebox
                        MessageBox.Show(text);
                    });*/
    
                }
            }

    Alguém me pode ajudar?

    Obrigado!

    quinta-feira, 19 de outubro de 2017 10:47

Respostas

  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 23 de outubro de 2017 17:32
    Moderador

Todas as Respostas

  • Boa tarde, Cláudio Hilário.

    Obrigado por usar o fórum MSDN.

    Essa seria uma questão de "Break Fix/Erro" ou "How to/Customização"?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 19 de outubro de 2017 20:15
    Moderador
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 23 de outubro de 2017 17:32
    Moderador