Beispiel #1
0
        public void ReceiveAsync(int buffersize = -1)
        {
            try
            {
                if (!IsConnected())
                {
                    Disconnect();
                    return;
                }

                if (buffersize > -1)
                {
                    _buffer = new byte[buffersize];
                }
                Receiving = true;
                Sock.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, DataReceived, Sock);
            }
            catch (Exception ex)
            {
                #if DEBUG
                Console.WriteLine(ex.ToString());
                #endif
                Disconnect();
            }
        }
Beispiel #2
0
        internal void PostRecv()
        {
            IAsyncResult ar           = null;
            SocketError  socketError  = SocketError.SocketError;
            HandlerParam handlerParam = null;

            try
            {
                handlerParam = new HandlerParam(EHandlerType.Socker, this);
                if (LOG_ERROR(handlerParam != null))
                {
                    goto Exit0;
                }

                ar = Sock.BeginReceive(RecvBuf.BufBytes, RecvBuf.WriteInx, RecvBuf.GetOnceWritableLen(), SocketFlags.None, out socketError,
                                       LP.NetModule.Reactor.OnReceive, handlerParam);
                if (socketError != SocketError.Success)
                {
                    Close(ESockerCloseType.PostRecvFail, 1, true);
                    goto Exit0;
                }
                if (LOG_ERROR(ar != null))
                {
                    goto Exit0;
                }
            }
            catch (Exception e)
            {
                LPMiniDump.GenerateNormalDump(e);
            }

Exit0:
            return;
        }
 public void BeginReceive(AsyncCallback callback)
 {
     try
     {
         Sock.BeginReceive(_buffer.BuildReceiveBuffer(), SocketFlags.None, callback, this);
     }
     catch (Exception ex)
     {
         IMA.Log.Warn(ErrorCode.MessagingBeginReceiveException, "Exception trying to begin receive from endpoint " + RemoteEndPoint, ex);
         throw;
     }
 }
Beispiel #4
0
 public override bool Start()
 {
     try
     {
         Sock.BeginReceive(Pack, 0, Pack.Size, SocketFlags.None, ReceivedCallback, null);
     }
     catch (Exception ex)
     {
         EventProvider.ExecuteErrorHandler(ex, SocketErrorLocation.Receive);
         return(false);
     }
     return(true);
 }
Beispiel #5
0
        public void ReceiveAsync(int buffersize = -1)
        {
            try
            {
                if (buffersize > -1)
                {
                    buffer = new byte[buffersize];
                }
                Receiving = true;
                Sock.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(DataReceived), Sock);
            }
            catch(Exception ex)
            {
                #if DEBUG
 Console.WriteLine(ex.ToString()); 
#endif
                this.Disconnect();
            }
        }
Beispiel #6
0
        void ReceivedCallback(IAsyncResult asyncResult)
        {
            try
            {
                ReceivedDataLen = Sock.EndReceive(asyncResult);
            }
            catch (SocketException) { return; }
            catch (ObjectDisposedException) { return; }

            if (ReceivedDataLen <= 0)
            {
                EventProvider.ExecuteDisconnectedHandler(IP);
                Dispose(this);
                return;
            }

            EventProvider.ExecuteReceivedDataHandler(Pack.Clone(), this);

            Array.Clear(Pack, 0, Pack.Size);

            Sock.BeginReceive(Pack, 0, Pack.Size, SocketFlags.None, ReceivedCallback, null);
        }