none
Socket (TcpClient) para comunicação TCP/IP Balança toledo RRS feed

  • Pergunta

  • Boa tarde, 

    Preciso receber de modo continuo os dados do modulo da balança toledo via comunicação TCP/IP.

    Estou utilizando o código abaixo dentro de um timer, que é executado a cada 1 segundo. Meu problema é que na primeira execução é recebido o buffer completo e nas próximas execuções do timer nenhum dados é recebido. Como posso ler os dados continuamente?

    Quando utilizado porta serial, após a abertura da Porta, utilizando o comando thread.sleep() para ler a porta durante alguns segundos. Tentei utilizar o mesmo procedimento utilizando socket mas não funcionou, pois não há buffer para leitura posterior a primeira captura.

    Como posso resolver este problema??

    TcpClient tcpClient = new TcpClient();
    tcpClient.Connect(IPAddress.Parse(this.moduloIP), Convert.ToInt32(this.moduloPorta));
    if (tcpClient.Connected)
    {
    NetworkStream networkStream = tcpClient.GetStream();
    if (networkStream.CanRead)
    {
    Byte[] b = new Byte[tcpClient.ReceiveBufferSize];
    networkStream.Read(b, 0, tcpClient.ReceiveBufferSize);

    dados = Encoding.ASCII.GetString(b);
    }
    }


    sexta-feira, 2 de janeiro de 2015 20:42

Todas as Respostas