Ejemplo n.º 1
0
 public void SendData(byte[] data)
 {
     if (tcpClient == null || tcpClient.Client == null || !tcpClient.Connected)
     {
         return;
     }
     if (ns != null)
     {
         try
         {
             if (ns.CanWrite)
             {
                 data = Package7E.Pack(data);
                 ns.BeginWrite(data, 0, data.Length, new AsyncCallback(AsyncWriteCallBack), ns);
             }
         }
         catch (IOException ioe)
         {
             if (!_isTcpConnected)
             {
                 return;
             }
         }
         catch (Exception ex)
         {
         }
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 观看者身份验证
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private ResMsg Authentication(byte[] data)
        {
            ResMsg rm = new ResMsg();

            if (data == null || data.Length == 0)
            {
                return(rm);
            }
            List <byte[]> cmds        = new List <byte[]>();
            int           removeCount = 0;

            Package7E.UnPack(data, ref cmds, ref removeCount);

            for (int i = 0; i < cmds.Count; i++)
            {
                JObject msg = JsonConvert.DeserializeObject <JObject>(Encoding.ASCII.GetString(cmds[i]));
                if (msg != null && msg.ContainsKey("Password") && msg["Password"].ToString() == txt_Password.Text)
                {
                    rm.Result  = true;
                    rm.Message = msg["UserName"].ToString();
                    break;
                }
            }
            return(rm);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 解析命令线程
        /// </summary>
        private void ParseCmds()
        {
            while (shareDesktop)
            {
                if (recvBuffer.Count == 0)
                {
                    Thread.Sleep(5);
                    continue;
                }
                try
                {
                    List <byte[]> cmds        = new List <byte[]>();
                    int           removeCount = 0;
                    byte[]        buffers;
                    lock (recvBuffer)
                    {
                        buffers = recvBuffer.ToArray();
                    }
                    Package7E.UnPack(buffers, ref cmds, ref removeCount);
                    if (removeCount > 0)
                    {
                        lock (recvBuffer)
                        {
                            recvBuffer.RemoveRange(0, removeCount);
                        }
                    }

                    for (int i = 0; i < cmds.Count; i++)
                    {
                        try
                        {
                            ExecuteCmd(Encoding.ASCII.GetString(cmds[i]));
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                }
                catch (Exception ex)
                {
                    //Log.Error("RecvFromSlave Error", ex);
                }
                Thread.Sleep(5);
            }
        }
Ejemplo n.º 4
0
        void RecvFromServer()
        {
            TimeSpan ts;

            while (true)
            {
                if (!_loginSuccess)
                {
                    Thread.Sleep(5);
                    continue;
                }
                ts = DateTime.Now - receiveDataStartTime;
                if (ts.TotalSeconds > 5)
                {
                    lock (receiveDataBuffer)
                    {
                        receiveDataBuffer.Clear();
                    }
                    tcpClient.Close();
                    _isTcpConnected = false;
                    _loginSuccess   = false;
                    this.Invoke(new Action(() =>
                    {
                        btn_Connect.Text  = "连接";
                        pictureBox1.Image = null;
                    }));
                    Thread.Sleep(5);
                    continue;
                }
                if (receiveDataBuffer.Count == 0)
                {
                    Thread.Sleep(5);
                    continue;
                }

                try
                {
                    List <byte[]> cmds        = new List <byte[]>();
                    int           removeCount = 0;
                    byte[]        buffers;
                    lock (receiveDataBuffer)
                    {
                        buffers = receiveDataBuffer.ToArray();
                    }
                    Package7E.UnPack(buffers, ref cmds, ref removeCount);
                    if (removeCount > 0)
                    {
                        lock (receiveDataBuffer)
                        {
                            receiveDataBuffer.RemoveRange(0, removeCount);
                        }
                    }

                    for (int i = 0; i < cmds.Count; i++)
                    {
                        BsonDataReader bsonDataReader = null;
                        try
                        {
                            MemoryStream msShareData = new MemoryStream(cmds[i]);
                            bsonDataReader = new BsonDataReader(msShareData);
                            JsonSerializer jsonSerializer = new JsonSerializer();
                            ShareData      shareData      = jsonSerializer.Deserialize <ShareData>(bsonDataReader);
                            switch (shareData.Type)
                            {
                            case "Text":
                                ShowResult(shareData.TextData);
                                break;

                            case "Image":
                                ShowImage(shareData.ImgData);
                                break;

                            default:
                                break;
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                        finally
                        {
                            if (bsonDataReader != null)
                            {
                                bsonDataReader.Close();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //Log.Error("RecvFromSlave Error", ex);
                }
                Thread.Sleep(5);
            }
        }