Exemplo n.º 1
0
 /// <summary>同步发送数据
 /// </summary>
 /// <param name="socket">The socket.</param>
 /// <param name="outPacket">The out packet.</param>
 protected virtual void SendData(ProxySocket socket, OutPacket outPacket)
 {
     try
     {
         ByteBuffer sendBuf = new ByteBuffer();
         FillBytebuf(outPacket, sendBuf);
         socket.Send(sendBuf.ToByteArray(), 0, sendBuf.Length, SocketFlags.None);
         outPacket.DateTime = DateTime.Now;
         if (outPacket.NeedAck())
         {
             outPacket.TimeOut = Utils.Util.GetTimeMillis(DateTime.Now) + QQGlobal.QQ_TIMEOUT_SEND;
             policy.PushResend(outPacket, this.Name);
         }
     }
     catch (Exception e)
     {
         policy.OnNetworkError(e);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// </summary>
        /// <param name="ar">The ar.</param>
        protected virtual void EndSendData(IAsyncResult ar)
        {
            OutPacket outPacket = (OutPacket)ar.AsyncState;

            try
            {
                outPacket.DateTime = DateTime.Now;
                int sendCount = socket.EndSend(ar);
                if (outPacket.NeedAck())
                {
                    outPacket.TimeOut = Utils.Util.GetTimeMillis(DateTime.Now) + QQGlobal.QQ_TIMEOUT_SEND;
                    policy.PushResend(outPacket, this.Name);
                }
                //outPacketQueue.Dequeue();
            }
            catch (Exception e)
            {
                policy.OnNetworkError(e);
            }
        }