Esempio n. 1
0
 /// <summary> 当将数据发送成功且对方已经收到的时候,触发此事件 P1=对方终结点 </summary>
 internal void OndateSuccess(IPEndPoint iPEndPoint)
 {
     if (this.DateSuccess != null)
     {
         EngineTool.EventInvoket(() => { this.DateSuccess(iPEndPoint); });
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 有个文件要传来;请问是否接收;
        /// </summary>
        /// <param name="FileLabel">文件标签</param>
        /// <param name="FileName">文件名称</param>
        /// <param name="FileLenth">文件长度</param>
        /// <returns>文件地址</returns>
        public string ReceiveOrNo(int FileLabel, string FileName, long FileLenth)
        {
            object haveBool = EngineTool.EventInvoket(() => { return(this.fileReceiveMust.ReceiveOrNo(FileLabel, FileName, FileLenth)); });
            string haveb    = (string)haveBool;

            return(haveb);
        }
Esempio n. 3
0
 /// <summary> 当接收到图片数据的时候,触发此事件 P1=对方终结点 P2=图片数据 </summary>
 internal void OnAcceptByte(IPEndPoint iPEndPoint, byte[] bytes)
 {
     if (this.AcceptByte != null)
     {
         EngineTool.EventInvoket(() => { this.AcceptByte(iPEndPoint, bytes); });
     }
 }
Esempio n. 4
0
 /// <summary> 当接收到文本数据的时候,触发此事件 P1=对方终结点 P2=文本数据 </summary>
 internal void OnAcceptString(IPEndPoint iPEndPoint, string str)
 {
     if (this.AcceptString != null)
     {
         EngineTool.EventInvoket(() => { AcceptString(iPEndPoint, str); });
     }
 }
Esempio n. 5
0
        /// <summary>
        /// 对方发过来的续传确认信息;你是否同意续传;
        /// </summary>
        /// <param name="FileLabel">文件标签</param>
        /// <returns>同意或不同意</returns>
        public bool FileOrNotContingue(int FileLabel)
        {
            object haveBool = EngineTool.EventInvoket(() => { return(this.fileMustBase.FileOrNotContingue(FileLabel)); });
            bool   haveb    = (bool)haveBool;

            return(haveb);
        }
Esempio n. 6
0
 /// <summary> 当引擎非正常原因自动断开的时候触发此事件 P1=断开原因 </summary>
 internal void OnEngineLost(string str)
 {
     if (this.EngineLost != null)
     {
         EngineTool.EventInvoket(() => { this.EngineLost(str); });
         FileStart.FileStopAll();//文件处理那里中断所有的文件
     }
 }
Esempio n. 7
0
 /// <summary> 当引擎完全关闭释放资源的时候触发此事件 </summary>
 internal void OnEngineClose()
 {
     if (this.EngineClose != null && _engineStart == true)
     {
         _engineStart = false;
         EngineTool.EventInvoket(() => { this.EngineClose(); });
         FileStart.FileStopAll();//文件处理那里中断所有的文件
     }
 }
Esempio n. 8
0
        /// <summary> 客户端完全登录成功之后要处理的事情 </summary>
        private void loginSuccess(TcpState stateOne)
        {
            stateOne.ConnectOk = true;

            state.Add(stateOne);

            EngineTool.EventInvoket(() => { Connect(stateOne.IpEndPoint); });

            FileOperate(stateOne.IpEndPoint.ToString() + "登陆成功");//记录
        }
Esempio n. 9
0
        /// <summary> 关闭相连的scoket以及关联的TcpState,释放所有的资源 </summary>
        private void socketRemove(TcpState stateOne, string str)
        {
            if (stateOne == null)
            {
                return;
            }

            stateOne.WorkSocket.Close();

            if (state.Remove(stateOne))                                                      //当没有登录的时候断掉,不触发下面的事件
            {
                EngineTool.EventInvoket(() => { Disconnection(stateOne.IpEndPoint, str); }); //当客户端断掉的时候触发此事件
                FileOperate(stateOne.IpEndPoint.ToString() + "已经断开");                        //记录
                FileStart.FileStopITxBase(stateOne);
            }

            stateOne = null;
        }
Esempio n. 10
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;
         EngineTool.EventInvoket(() => { ReconnectionStart(); });
     }
     _engineStart = false;
     StartEngine();
 }
Esempio n. 11
0
 /// <summary> 当客户端完全连接上服务器之后要处理的一些事情 </summary>
 private void loginSuccess()
 {
     _engineStart = true;
     if (HeartThread == null)
     {
         //连接成功之后启动心跳线程
         HeartThread = new Thread(heartThread);
         HeartThread.IsBackground = true;
         HeartThread.Start();
     }
     if (reconnectOn)
     {
         EngineTool.EventInvoket(() => { StartResult(true, "重连成功"); });
         reconnectOn = false; reconnectCi = 0;
     }
     else
     {
         EngineTool.EventInvoket(() => { StartResult(true, "启动成功"); });
     }
 }
Esempio n. 12
0
 /// <summary> 登录失败之后要处理的事情 </summary>
 private void loginFailure(string str)
 {
     outtimebool = true;       //登录有结果了,判断超时的线程跳出
     if (_engineStart == true) //失败的时候引擎都是关闭的
     {
         return;
     }
     if (reconnectOn && reconnectCi < _reconnectMax)
     {
         reconnect();//继续重连
     }
     else
     {
         if (reconnectOn)
         {
             EngineTool.EventInvoket(() => { StartResult(false, "重连失败" + str); });
         }
         else
         {
             EngineTool.EventInvoket(() => { StartResult(false, str); });
         }
         CloseEngine();//不重连了就关闭客户端,释放资源
     }//登录失败触发此事件
 }
Esempio n. 13
0
 public void FileStartOn(int FileLabel)
 {
     EngineTool.EventInvoket(() => { this.fileSendMust.FileStartOn(FileLabel); });
 }
Esempio n. 14
0
 public void SendSuccess(int FileLabel)
 {
     EngineTool.EventInvoket(() => { this.fileSendMust.SendSuccess(FileLabel); });
 }
Esempio n. 15
0
 /// <summary>
 /// 文件接收完成
 /// </summary>
 /// <param name="FileLabel">文件标签</param>
 public void ReceiveSuccess(int FileLabel)
 {
     EngineTool.EventInvoket(() => { this.fileReceiveMust.ReceiveSuccess(FileLabel); });
 }
Esempio n. 16
0
 /// <summary>
 /// 得到文件的进度;每次缓冲区为单位折算成百分比输出进度;这样可以提高效率;
 /// </summary>
 /// <param name="FileLabel">文件标签</param>
 /// <param name="Progress">文件进度</param>
 public void FileProgress(int FileLabel, int Progress)
 {
     EngineTool.EventInvoket(() => { this.fileMustBase.FileProgress(FileLabel, Progress); });
 }
Esempio n. 17
0
 /// <summary>
 /// 对方拒绝续传;文件又处于暂停状态;
 /// </summary>
 /// <param name="FileLabel">文件标签</param>
 public void FileNoContinue(int FileLabel)
 {
     EngineTool.EventInvoket(() => { this.fileMustBase.FileNoContinue(FileLabel); });
 }
Esempio n. 18
0
 /// <summary>
 /// 对方暂停;我方也已经暂停;等待着对方的再一次请求传输;会在FileOrNotContingue这里触发
 /// </summary>
 /// <param name="FileLabel">文件标签</param>
 public void FileStop(int FileLabel)
 {
     EngineTool.EventInvoket(() => { this.fileMustBase.FileStop(FileLabel); });
 }
Esempio n. 19
0
 /// <summary>
 /// 文件已中断;状态已自动改为暂停状态;等待对方上线的时候;进行续传;
 /// </summary>
 /// <param name="FileLabel">文件标签</param>
 /// <param name="Reason">中断原因</param>
 public void FileBreak(int FileLabel, string Reason)
 {
     EngineTool.EventInvoket(() => { this.fileMustBase.FileBreak(FileLabel, Reason); });
 }