Exemple #1
0
        /// <summary>
        /// 处理接收的服务器收据
        /// </summary>
        private void ReceiveData()
        {
            string receiveString = null;

            while (!isExit)
            {
                ReceiveMessageDelegate d      = new ReceiveMessageDelegate(receiveMessage);
                IAsyncResult           result = d.BeginInvoke(out receiveString, null, null);
                //使用轮询方式来盘点异步操作是否完成
                while (!result.IsCompleted)
                {
                    if (isExit)
                    {
                        break;
                    }
                    Thread.Sleep(100);
                }
                //获取Begin方法的返回值所有输入/输出参数
                d.EndInvoke(out receiveString, result);
                if (receiveString == null)
                {
                    if (!isExit)
                    {
                        dgLog("与服务器失去联系,即将开始重新链接...");
                        IsConnect = false;
                    }

                    break;
                }
                //string[] splitString = receiveString.Split(',');
                //string command = splitString[0].ToLower();
                try
                {
                    RevMsg = Derializer(receiveString);
                    if (RevMsg != null)
                    {
                        string str = "2&";
                        str += (int)RevMsg.Order + "&";
                        str += RevMsg.DataInfo;
                        AddTalkMessage(str);
                    }
                    else
                    {
                        AddTalkMessage("消息解析失败:" + receiveString);
                    }
                }
                catch (Exception ex)
                {
                    AddTalkMessage("消息解析失败:" + receiveString);
                }
            }
        }
Exemple #2
0
 /// <summary>
 /// 向服务端发送数据
 /// </summary>
 /// <param name="message"></param>
 private void SendMessage(CilentInfo message)
 {
     try
     {
         BinaryFormatter formatter = new BinaryFormatter();
         bw.Write(Serializer(message));
         bw.Flush();
     }
     catch
     {
         dgLog("发送失败");
     }
 }
Exemple #3
0
 /// <summary>
 /// 读取服务器发过来的信息
 /// </summary>
 /// <param name="receiveMessage"></param>
 private void receiveMessage(out string receiveMessage)
 {
     receiveMessage = null;
     try
     {
         receiveMessage = br.ReadString();
         RevMsg         = Derializer(receiveMessage);
     }
     catch (Exception ex)
     {
         dgLog(ex.Message);
     }
 }
Exemple #4
0
        /// <summary>
        /// 异步向服务器发送数据
        /// </summary>
        /// <param name="message"></param>
        private void AsyncSendMessage(CilentInfo message)
        {
            SendMessageDelegate d      = new SendMessageDelegate(SendMessage);
            IAsyncResult        result = d.BeginInvoke(message, null, null);

            while (!result.IsCompleted)
            {
                if (isExit)
                {
                    return;
                }
                Thread.Sleep(50);
            }
            SendMessageStates states = new SendMessageStates();

            states.d      = d;
            states.result = result;
            Thread t = new Thread(FinishAsyncSendMessage);

            t.IsBackground = true;
            t.Start(states);
        }
 /// <summary>
 /// 序列化
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public static string Serializer(CilentInfo info)
 {
     return JsonConvert.SerializeObject(info);
 }
 /// <summary>
 /// 向服务端发送数据
 /// </summary>
 /// <param name="message"></param>
 private void SendMessage(CilentInfo message)
 {
     try
     {
         BinaryFormatter formatter = new BinaryFormatter();
         bw.Write(Serializer(message));
         bw.Flush();
     }
     catch
     {
         dgLog("发送失败");
     }
 }
 /// <summary>
 /// 异步向服务器发送数据
 /// </summary>
 /// <param name="message"></param>
 private void AsyncSendMessage(CilentInfo message)
 {
     SendMessageDelegate d = new SendMessageDelegate(SendMessage);
     IAsyncResult result = d.BeginInvoke(message, null, null);
     while (!result.IsCompleted)
     {
         if (isExit)
             return;
         Thread.Sleep(50);
     }
     SendMessageStates states = new SendMessageStates();
     states.d = d;
     states.result = result;
     Thread t = new Thread(FinishAsyncSendMessage);
     t.IsBackground = true;
     t.Start(states);
 }
        /// <summary>
        /// 处理接收的服务器收据
        /// </summary>
        private void ReceiveData()
        {
            string receiveString = null;
            while (!isExit)
            {
                ReceiveMessageDelegate d = new ReceiveMessageDelegate(receiveMessage);
                IAsyncResult result = d.BeginInvoke(out receiveString, null, null);
                //使用轮询方式来盘点异步操作是否完成
                while (!result.IsCompleted)
                {
                    if (isExit)
                        break;
                    Thread.Sleep(100);
                }
                //获取Begin方法的返回值所有输入/输出参数
                d.EndInvoke(out receiveString, result);
                if (receiveString == null)
                {
                    if (!isExit)
                    {
                        dgLog("与服务器失去联系,即将开始重新链接...");
                        IsConnect = false;
                    }

                    break;
                }
                //string[] splitString = receiveString.Split(',');
                //string command = splitString[0].ToLower();
                try
                {
                    RevMsg = Derializer(receiveString);
                    if (RevMsg != null)
                    {

                        string str = "2&";
                        str += (int) RevMsg.Order + "&";
                        str += RevMsg.DataInfo;
                        AddTalkMessage(str);
                    }
                    else
                    {
                        AddTalkMessage("消息解析失败:"+receiveString);
                    }
                }
                catch (Exception ex)
                {
                    AddTalkMessage("消息解析失败:"+receiveString);
                }

            }
            
           
        }
 /// <summary>
 /// 读取服务器发过来的信息
 /// </summary>
 /// <param name="receiveMessage"></param>
 private void receiveMessage(out string receiveMessage)
 {
     receiveMessage = null;
     try
     {
         receiveMessage = br.ReadString();
         RevMsg = Derializer(receiveMessage);
     }
     catch (Exception ex)
     {
         dgLog(ex.Message);
     }
 }
Exemple #10
0
 /// <summary>
 /// 序列化
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public static string Serializer(CilentInfo info)
 {
     return(JsonConvert.SerializeObject(info));
 }