Beispiel #1
0
 /// <summary>
 /// 当将数据发送成功且对方已经收到的时候,触发此事件
 /// </summary>
 /// <param name="iPEndPoint">对方终结点</param>
 internal void OndateSuccess(IPEndPoint iPEndPoint)
 {
     if (this.dateSuccess != null)
     {
         CommonMethod.eventInvoket(() => { this.dateSuccess(iPEndPoint); });
     }
 }
Beispiel #2
0
 /// <summary>
 /// 触发当接收到文本数据的事件
 /// </summary>
 /// <param name="iPEndPoint">对方终结点</param>
 /// <param name="str">文本数据</param>
 internal void OnAcceptString(IPEndPoint iPEndPoint, string str)
 {
     if (this.AcceptString != null)
     {
         CommonMethod.eventInvoket(() => { AcceptString(iPEndPoint, str); });
     }
 }
Beispiel #3
0
 /// <summary>
 /// 当接收到图片数据的时候,触发此事件
 /// </summary>
 /// <param name="iPEndPoint">对方终结点</param>
 /// <param name="bytes">图片数据</param>
 internal void OnAcceptByte(IPEndPoint iPEndPoint, byte[] bytes)
 {
     if (this.AcceptByte != null)
     {
         CommonMethod.eventInvoket(() => { this.AcceptByte(iPEndPoint, bytes); });
     }
 }
Beispiel #4
0
 /// <summary>
 /// 客户端完全登录成功之后要处理的事情
 /// </summary>
 /// <param name="stateOne">TcpState</param>
 private void loginSuccess(TcpTransmitBox stateOne)
 {
     stateOne.ConnectOk = true;
     state.Add(stateOne);
     CommonMethod.eventInvoket(() => { Connect(stateOne.IpEndPoint); });
     EngineLog(stateOne.IpEndPoint.ToString() + "登陆成功");//记录
 }
Beispiel #5
0
 /// <summary>
 /// 当引擎非正常原因自动断开的时候触发此事件
 /// </summary>
 /// <param name="str">断开原因</param>
 internal void OnEngineLost(string str)
 {
     if (this.EngineLost != null)
     {
         CommonMethod.eventInvoket(() => { this.EngineLost(str); });
         FileStart.FileStopAll();//文件处理那里中断所有的文件
     }
 }
Beispiel #6
0
 /// <summary>
 /// 当引擎完全关闭释放资源的时候触发此事件
 /// </summary>
 internal void OnEngineClose()
 {
     if (this.EngineClose != null && _engineStart == true)
     {
         _engineStart = false;
         CommonMethod.eventInvoket(() => { this.EngineClose(); });
         FileStart.FileStopAll();//文件处理那里中断所有的文件
     }
 }
Beispiel #7
0
 /// <summary>
 /// 关闭相连的scoket以及关联的TcpState,释放所有的资源
 /// </summary>
 /// <param name="stateOne">TcpState</param>
 /// <param name="str">原因</param>
 private void socketRemove(TcpTransmitBox stateOne, string str)
 {
     if (stateOne == null)
     {
         return;
     }
     stateOne.WorkSocket.Close();
     if (state.Remove(stateOne))                                                        //当没有登录的时候断掉,不触发下面的事件
     {
         CommonMethod.eventInvoket(() => { Disconnection(stateOne.IpEndPoint, str); }); //当客户端断掉的时候触发此事件
         EngineLog(stateOne.IpEndPoint.ToString() + "已经断开");                            //记录
         FileStart.FileStopITxBase(stateOne);
     }
     stateOne = null;
 }
Beispiel #8
0
 /// <summary>
 /// 当客户端完全连接上服务器之后要处理的一些事情
 /// </summary>
 private void loginSuccess()
 {
     _engineStart = true;
     if (HeartThread == null)
     {//连接成功之后启动心跳线程
         HeartThread = new Thread(heartThread);
         HeartThread.IsBackground = true;
         HeartThread.Start();
     }
     if (reconnectOn)
     {
         CommonMethod.eventInvoket(() => { StartResult(true, "重连成功"); }); reconnectOn = false; reconnectCi = 0;
     }
     else
     {
         CommonMethod.eventInvoket(() => { StartResult(true, "启动成功"); });
     }
 }
Beispiel #9
0
 /// <summary>
 /// 重连模块
 /// </summary>
 private void reconnect()
 {
     if (_reconnectMax == 0)
     {
         return;    //不重连直接返回
     }
     reconnectCi++; //每重连一次重连的次数加1
     if (stateOne != null)
     {
         stateOne.WorkSocket.Close();
         stateOne = null;
     }
     if (reconnectOn == false)
     {
         reconnectOn = true;
         CommonMethod.eventInvoket(() => { ReconnectionStart(); });
     }
     _engineStart = false;
     StartEngine();//调用启动引擎
 }
Beispiel #10
0
 /// <summary>
 /// 登录失败之后要处理的事情
 /// </summary>
 private void loginFailure(string str)
 {
     outtimebool = true;       //登录有结果了,判断超时的线程跳出
     if (_engineStart == true) //失败的时候引擎都是关闭的
     {
         return;
     }
     if (reconnectOn && reconnectCi < _reconnectMax)
     {
         reconnect();//继续重连
     }
     else
     {
         if (reconnectOn)
         {
             CommonMethod.eventInvoket(() => { StartResult(false, "重连失败" + str); });
         }
         else
         {
             CommonMethod.eventInvoket(() => { StartResult(false, str); });
         }
         CloseEngine();//不重连了就关闭客户端,释放资源
     }//登录失败触发此事件
 }