Пример #1
0
        public virtual bool SendCompleted()
        {
            m_activeDT  = DateTime.UtcNow;
            m_sendAsync = false;
            AsyncSendBufferManager asyncSendBufferManager = m_asyncSocketUserToken.SendBuffer;

            asyncSendBufferManager.ClearFirstPacket(); //清除已发送的包
            int offset = 0;
            int count  = 0;

            if (asyncSendBufferManager.GetFirstPacket(ref offset, ref count))
            {
                m_sendAsync = true;
                return(m_asyncSocketServer.SendAsyncEvent(m_asyncSocketUserToken.ConnectSocket, m_asyncSocketUserToken.SendEventArgs,
                                                          asyncSendBufferManager.DynamicBufferManager.Buffer, offset, count));
            }
            else
            {
                return(SendCallback());
            }
        }
Пример #2
0
 /// <summary>
 /// 响应请求
 /// </summary>
 /// <param name="client"></param>
 /// <param name="bContent">发送的内容</param>
 /// <param name="responseCode"></param>
 /// <param name="contentType"></param>
 public void sendResponse(byte[] bContent, string responseCode,
                          string contentType)
 {
     try
     {
         byte[] bHeader = charEncoder.GetBytes(
             "HTTP/1.1 " + responseCode + "\r\n"
             + "Server: LongChengTieJi Web Server\r\n"
             + "Content-Length: " + bContent.Length.ToString() + "\r\n"
             + "Connection: close\r\n"
             + "Content-Type: " + contentType + "\r\n\r\n");
         if (clientSocket == null)
         {
             return;
         }
         clientSocket.Send(bHeader);
         //clientSocket.Send(bContent);
         httpEntity.SendAsyncEvent(clientSocket, m_asyncSocketUserToken.SendEventArgs, bContent, 0, bContent.Length);
         //disconnected("成功关闭");
         //send(client, bContent);
     }
     catch (System.ArgumentNullException ex)
     {
         ErrorDisconnected(ex.ToString());
     }
     catch (System.Net.Sockets.SocketException ex)
     {
         ErrorDisconnected(ex.ToString());
     }
     catch (System.ObjectDisposedException ex)
     {
         ErrorDisconnected(ex.ToString());
     }
     catch (Exception ex)
     {
         ErrorDisconnected(ex.ToString());
     }
 }