locked
StreamSocket TCP/IP Client RRS feed

  • Pergunta

  • Estou com um problema com StreamSocket TCP/IP preciso fazer múltiplos envio de dados ao servidor porem após mandar a primeira sequencia de dados meu StreamSocket e fechado, já estou a 2 semanas trabalhando nisso porem sem sucesso não consigo identificar o porque do erro... abaixo segue código que estou utilizando... 
            public async Task send(string message)
            {
                DataWriter writer;
                message = message + '\n';
    
                // Create the data writer object backed by the in-memory stream. 
                using (writer = new DataWriter(socket.OutputStream))
                {
                    // Set the Unicode character encoding for the output stream
                    writer.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf8;
                    // Specify the byte order of a stream.
                    writer.ByteOrder = ByteOrder.LittleEndian;
    
                    // Gets the size of UTF-8 string.
                    writer.MeasureString(message);
                    // Write a string value to the output stream.
                    writer.WriteString(message);
    
                    // Enviar o conteúdo do escritor para o fluxo de apoio .
                    try
                    {
                        await writer.StoreAsync();
                           
                    }
                    catch (Exception exception)
                    {
                        switch (SocketError.GetStatus(exception.HResult))
                        {
                            case SocketErrorStatus.HostNotFound:
                                // Handle HostNotFound Error
                                throw;
                            default:
                                // If this is an unknown status it means that the error is fatal and retry will likely fail.
                                throw;
                        }
                    }
    
                    await writer.FlushAsync();
                    // In order to prolong the lifetime of the stream, detach it from the DataWriter
                    writer.DetachStream();
                }
            }

    sexta-feira, 25 de setembro de 2015 00:13

Respostas

  • Olá Eduardo,

     esse erro é comum, a solução é ao enviar o primeiro item, você deve deixar seu SocketStream na "escuta" novamente, ou seja chamar seu método assincrono de "ouvir", poste como está fazendo seu recebimento de dados, pois ele deve ser chamado ao enviar para o Socket não fechar automaticamente.

    • Marcado como Resposta Marcos SJ terça-feira, 13 de outubro de 2015 15:59
    terça-feira, 13 de outubro de 2015 14:40

Todas as Respostas

  • E qual erro está acontecendo?

    Atenciosamente, Samuel dos Anjos

    sexta-feira, 25 de setembro de 2015 01:55
  • Bom dia Samuel,

    O erro que recebo é esse "The object has been closed. (Exception from HRESULT: 0x80000013)" em

    'System.ObjectDisposedException'

    consigo fazer o primeiro envio mais na sequencia os demais não consigo o socket por algum motivo parece ser fechado após o primeiro envio...

    sexta-feira, 25 de setembro de 2015 13:17
  • Olá EduardoSantos,

    tudo bem?

    Conseguiu resolver a sua dúvida?

    Atencisoamente


    Marcos Roberto de Souza Junior

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

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e 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.

    terça-feira, 13 de outubro de 2015 14:24
  • Olá Eduardo,

     esse erro é comum, a solução é ao enviar o primeiro item, você deve deixar seu SocketStream na "escuta" novamente, ou seja chamar seu método assincrono de "ouvir", poste como está fazendo seu recebimento de dados, pois ele deve ser chamado ao enviar para o Socket não fechar automaticamente.

    • Marcado como Resposta Marcos SJ terça-feira, 13 de outubro de 2015 15:59
    terça-feira, 13 de outubro de 2015 14:40