Ejemplo n.º 1
0
        private void ReceivePacket(IAsyncResult ar)
        {
            try
            {
                int ReceiveSize = clientSocket.EndReceive(ar);

                if (ReceiveSize > 0)
                {
                    byte[] TMPClientReceiveBuffer = new byte[Packet.MaxLength];
                    Array.Copy(ClientReceiveBuffer, TMPClientReceiveBuffer, Packet.MaxLength);

                    this.clientSocket.BeginReceive(ClientReceiveBuffer, 0, Packet.MaxLength, SocketFlags.None, ReceivePacket, null);

                    Packet[] ReceivePakets = Packet.SplitPackets(TMPClientReceiveBuffer);
                    foreach (Packet ReceivePak in ReceivePakets)
                    {
                        serverSocket.SocketReceivedPacket(this, ReceivePak);
                    }
                }
                else
                {
                    serverSocket.SocketConnectionDisconnected(this);
                }
            }
            catch { serverSocket.SocketConnectionDisconnected(this); }
        }
Ejemplo n.º 2
0
        void ReceiveEvent_Completed(object sender, SocketAsyncEventArgs e)
        {
            try
            {
                int ReceiveSize = e.BytesTransferred;

                if (ReceiveSize > 0)
                {
                    byte[] TMPReceiveBuffer = new byte[Packet.MaxLength];
                    Array.Copy(e.Buffer, TMPReceiveBuffer, Packet.MaxLength);

                    SocketAsyncEventArgs ReceiveEvent = new SocketAsyncEventArgs();
                    ReceiveEvent.Completed += new EventHandler <SocketAsyncEventArgs>(ReceiveEvent_Completed);

                    RawSocket.ReceiveAsync(ReceiveEvent);

                    Packet[] ReceivePakets = Packet.SplitPackets(TMPReceiveBuffer);
                    foreach (Packet ReceivePak in ReceivePakets)
                    {
                        if (ClientSocketPacketReceived_Event != null)
                        {
                            ClientSocketPacketReceived_Event(this, this, ReceivePak);
                        }

                        ReceivedPackets++;
                    }
                }
                else
                {
                    if (ClientSocketDisconnected_Event != null)
                    {
                        ClientSocketDisconnected_Event(this, null);
                    }
                }
            }
            catch { if (ClientSocketDisconnected_Event != null)
                    {
                        ClientSocketDisconnected_Event(this, null);
                    }
            }
        }
Ejemplo n.º 3
0
        private void PacketReceived(IAsyncResult ar)
        {
            try
            {
                int ReceiveSize = RawSocket.EndReceive(ar);

                if (ReceiveSize > 0)
                {
                    byte[] TMPReceiveBuffer = new byte[Packet.MaxLength];
                    Array.Copy(ReceiveBuffer, TMPReceiveBuffer, Packet.MaxLength);

                    RawSocket.BeginReceive(ReceiveBuffer, 0, Packet.MaxLength, SocketFlags.None, new AsyncCallback(PacketReceived), RawSocket);

                    Packet[] ReceivePakets = Packet.SplitPackets(TMPReceiveBuffer);
                    foreach (Packet ReceivePak in ReceivePakets)
                    {
                        if (ClientSocketPacketReceived_Event != null)
                        {
                            ClientSocketPacketReceived_Event(this, this, ReceivePak);
                        }

                        ReceivedPackets++;
                    }
                }
                else
                {
                    if (ClientSocketDisconnected_Event != null)
                    {
                        ClientSocketDisconnected_Event(this, null);
                    }
                }
            }
            catch { if (ClientSocketDisconnected_Event != null)
                    {
                        ClientSocketDisconnected_Event(this, null);
                    }
            }
        }