Ejemplo n.º 1
0
        private void m_SendMessageEventFiring(FIRING_D_C_F firType, ISocketSndEventArgs sendArgs, string funcionTag)
        {
            switch (firType)
            {
            case FIRING_D_C_F.DEFAULT:
                DebugQy.LogTag(funcionTag, "buffer has send . please wait callback.", "#3487E8FF");
                break;

            case FIRING_D_C_F.FIR_COMPLETE:
                DebugQy.LogTag(funcionTag, firType.ToString(), "#3487E8FF");
                if (AnsyncSendMsg_Complete_Event != null)
                {
                    ISocketSndEventArgs _args = sendArgs;
                    AnsyncSendMsg_Complete_Event(this, _args);
                }

                break;

            case FIRING_D_C_F.FIR_FAILED:
                DebugQy.LogTag(funcionTag, firType.ToString() + sendArgs.ErrMessage, "#BB7979FF");
                if (AnsyncSendMsg_Failed_Event != null)
                {
                    ISocketSndEventArgs _args = sendArgs;
                    AnsyncSendMsg_Failed_Event(this, _args);
                }
                break;

            default:

                break;
            }
        }
Ejemplo n.º 2
0
 private void m_SendMessageFaliedCallBack(ISocketQy sender, ISocketSndEventArgs evetArgs)
 {
     DebugQy.LogTag("HeadBodyTcpProtocol", "Failed Call Back in 'Protocol'.");
     if (SendMsgFailedEvent != null)
     {
         SendMsgFailedEvent(sender, evetArgs);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 协议发送事件失败回调
 /// </summary>
 /// <param name="sender">触发该事件的SocketQY</param>
 /// <param name="eventArgs">参数</param>
 private void m_ProtocolSendFailedCallback(ISocketQy sender, ISocketSndEventArgs eventArgs)
 {
     DebugQy.LogTag("ClientController", "Send Failed CallBack:" + eventArgs.ErrMessage);
     m_FirSomeEvent(EVENT_TYPE.SEND, COMPLETE_OR_FAILED.FAILED, eventArgs.ErrMessage);
 }
Ejemplo n.º 4
0
        private void m_SendMsgCallBack(IAsyncResult asyncResult)
        {
            DebugQy.LogTag("m_SendMsgCallBack", " ---- in ---- ", "#3487E8FF");
            string              errorMessage = string.Empty;
            SocketAnsynParam    ansynParam   = asyncResult.AsyncState as SocketAnsynParam;
            ISocketSndEventArgs sndEventArgs = ansynParam.transEventArgs as ISocketSndEventArgs;
            FIRING_D_C_F        firEventType = FIRING_D_C_F.DEFAULT;

            try
            {
                SocketError socketErrorCode;
                int         sndBufferSize = ansynParam.workSocket.EndSend(asyncResult, out socketErrorCode);
                if (socketErrorCode != SocketError.Success)
                {
                    DebugQy.LogWarning("[SEND MESAGE CALLBACK] Socket error : [" + socketErrorCode.ToString() + "]");
                }
                if (sndBufferSize == sndEventArgs.BufferSize)
                {
                    errorMessage = "√√√ no mistake √√√ SendComplete buffer lenth is :[" + sndBufferSize + "]";
                    firEventType = FIRING_D_C_F.FIR_COMPLETE;
                }
                else
                {
                    DebugQy.LogWarning("Real 'SEND' buffer != needSize   NeedSndLengrh :[" + sndEventArgs.BufferSize + "]*-*-*-*-*");
                    DebugQy.LogWarning("Real 'SEND' buffer != needSize   RealSndLengrh :[" + sndBufferSize + "]*-*-*-*-*");
                    DebugQy.LogWarning("源:." + Encoding.UTF8.GetString(sndEventArgs.SendBuffer, 0, sndEventArgs.BufferSize) + ".");
                    errorMessage = "×××  receive bytes size is wrong.  ××× :"
                                   + "需接收数据与接收数据字节不匹配!";
                    DebugQy.LogWarning(errorMessage);
                    firEventType = FIRING_D_C_F.FIR_FAILED;
                    //TODO:返回值校验的逻辑处理:查看Socket底层后再做补充 !!!
                }
            }
            catch (ArgumentNullException ee)
            {
                errorMessage = "×××  ArgumentNullException  ×××:"
                               + "asyncResult 为 null。"
                               + ee.Message;
                firEventType = FIRING_D_C_F.FIR_FAILED;
            }
            catch (ArgumentException ee)
            {
                errorMessage = "×××  ArgumentException  ×××:"
                               + "BeginSend 方法调用后未返回 asyncResult。"
                               + ee.Message;
                firEventType = FIRING_D_C_F.FIR_FAILED;
            }
            catch (SocketException ee)
            {
                errorMessage = "×××  SocketException  ×××:"
                               + "试图访问套接字时发生错误。"
                               + ee.Message;
                firEventType = FIRING_D_C_F.FIR_FAILED;
            }
            catch (ObjectDisposedException ee)
            {
                errorMessage = "×××  ObjectDisposedException  ×××:"
                               + "Socket 已关闭。"
                               + ee.Message;
                firEventType = FIRING_D_C_F.FIR_FAILED;
            }
            catch (InvalidOperationException ee)
            {
                errorMessage = "×××  InvalidOperationException  ×××"
                               + "先前为异步发送已调用过 EndSend。"
                               + ee.Message;
                firEventType = FIRING_D_C_F.FIR_FAILED;
            }
            catch (Exception ee)
            {
                errorMessage = "×××  Unknown exception  ××× :"
                               + "Firing other unknown exception !!!!!!"
                               + ee.Message;
                firEventType = FIRING_D_C_F.FIR_FAILED;
            }
            sndEventArgs.SetErrMessage(errorMessage);
            m_SendMessageEventFiring(firEventType, sndEventArgs, "m_SendMsgCallBack");
            DebugQy.LogTag(">>>>>>> SEN MSG IN CLIENT >>>>>>>", "↑↑↑↑↑↑↑ [ out ][" + sndEventArgs.Tag + ":" + sndEventArgs.BufferSize + "]↑↑↑↑↑↑↑ ", "#3487E8FF");
        }