Exemple #1
0
        public void Iniciar(string host, int port, MensagemRecebidaCallback mesagemRecebida)
        {

            try
            {
                clientCount = 0;
                listener = new TcpListener(IPAddress.Parse(host), port);
                listener.Start();
                listener.Server.ReceiveTimeout = RECEIVE_TIMEOUT;
                listener.Server.SendTimeout = SEND_TIMEOUT;
            }
            catch (SocketException se)
            {
                throw new Exception("Falha na espera das requisições remota, verifique se existe outra instância do Agente de Conexão Remota", se);
            }

            if (mesagemRecebida == null)
                throw new ArgumentException("Argumento mensagemRecebida não pode ser nulo.");

            StartAccept(mesagemRecebida);

        }
Exemple #2
0
        private void AguardarMensagem(TcpClient client, NetworkStream stream, MensagemRecebidaCallback callback)
        {
            string data = null;

            while (true)
            {
                if (!client.Connected) return;

                try
                {
                    data = WebSocketPacket.Read(stream);
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.ToString());
                    client.Close();
                }

                Debug.WriteLine("Read: {0}", data);

                callback(this, data);

            }
        }
Exemple #3
0
 public void StartAccept(MensagemRecebidaCallback mesagemRecebida)
 {
     listener.BeginAcceptTcpClient(DoAcceptTcpClient, mesagemRecebida);
 }
Exemple #4
0
        public WebSocketClient(TcpClient client, MensagemRecebidaCallback callback)
        {

            _client = client;

            string data = null;

            using (var stream = client.GetStream())
            {
                data = Accept(stream);

                if (data.Length > 3 && data.Substring(0, 3) == "GET")
                {
                    var handshake = WebSocketPacket.HandShake(data);
                    var buffer = Encoding.UTF8.GetBytes(handshake);
                    stream.Write(buffer, 0, buffer.Length);
                }

                AguardarMensagem(client, stream, callback);

            }

        }