internal async Task SendPacketAsync(AbstractPacket packet) { DataWriter writer; using (writer = new DataWriter(socket.OutputStream)) { writer.ByteOrder = ByteOrder.BigEndian; HeapByteBuf dataBuf = new HeapByteBuf(16, 4096); packet.WriteTo(dataBuf); writer.WriteUInt16(packet.Id); writer.WriteUInt16((ushort)dataBuf.WriterIndex); writer.WriteBytes(dataBuf.GetBackingArray()); try { await writer.StoreAsync(); } catch (Exception exception) {} await writer.FlushAsync(); writer.DetachStream(); } }
internal void ParsePacket(HeapByteBuf body, ushort packetId) { AbstractPacket packet = PacketRegistry.CreateInstance(packetId); packet.ReadFrom(body); this.HandlePacket(packet); }
public static Boolean TryGetIpAndUdpPackets(Frame frame, out AbstractPacket ipPacket, out UdpPacket udpPacket) { ipPacket = null; udpPacket = null; foreach (var p in frame.PacketList) { if (p.GetType() == typeof(RawPacket)) { return(false); } if (p.GetType() == typeof(TcpPacket)) { return(false); } if (p.GetType() == typeof(IPv4Packet)) { ipPacket = p; } else if (p.GetType() == typeof(IPv6Packet)) { ipPacket = p; } else if (p.GetType() == typeof(UdpPacket)) { udpPacket = (UdpPacket)p; //there is no point in enumarating further than the UDP packet if (ipPacket != null) { return(true); } return(false); } } return(false); }
/// <summary> /// This listener is called when GSM error occures and activation status is read. /// for reactive numbers after error, the start index must be set as equal as last working index +1 (to skipp error number) /// </summary> /// <param name="packet"></param> public void onReadActivate(ActivationPacket packet) { try { resetTimer(); if (packet.WorkingIndex + 1 <= packet.Finish) { Logger.Show(string.Format("Re-Active numbers => Last index: {0} , Current Index: {1}", packet.WorkingIndex, packet.WorkingIndex + 1), ConsoleColor.Green); byte[] byteToSend = null; AbstractPacket packetToSend = null; packetToSend = new ActivationPacket(sim_number, packet.WorkingIndex + 1, finish); byteToSend = packetToSend.toRaw(); networkManager.Send(byteToSend); } else { finishWorks(); } } catch (Exception e) { Logger.ShowError(e.Message); } }
internal void HandlePacket(AbstractPacket packet) { if (packet is PacketPlayerLogin) { PacketPlayerLogin p = (PacketPlayerLogin)packet; //p.Username } }
internal void ParsePacket(HeapByteBuf body) { ushort type = this.ParsingPacketId; AbstractPacket packet = PacketRegistry.CreateInstance(type); packet.ReadFrom(body); this.HandlePacket(packet); }
private void button1_Click(object sender, EventArgs e) { try { using (var p = new PacketReader(AbstractPacket.StringToByteArray(richTextBox1.Text))) richTextBox2.Text = ReadPacket(p); } catch (Exception ex) { richTextBox2.Text = ex.Message; } }
/// <summary> /// Itterate on gridview numbers based on registeration answer of modem and register new number /// After all numbers are registered, activation of numbers will be done /// </summary> /// <param name="registeredPacket">Registerd packet (answer of modem)</param> public void onWriteNumberRegister(RegisterationPacket registeredPacket) { try { resetTimer(); int cIndex = registeredPacket.Index + 1; byte[] byteToSend = null; AbstractPacket packetToSend = null; if (cIndex < queueItems.Count) { using (SMSPortalDBEntities db = new SMSPortalDBEntities()) { Guid qp_id = queueItems[cIndex].queue_phone.TFId; string number = (from x in db.Queue_Phone where x.TFId == qp_id select x.Phone.TFNumber).FirstOrDefault(); packetToSend = new RegisterationPacket(sim_number, number, cIndex); Logger.Show(packetToSend.ToString(), ConsoleColor.White); byteToSend = packetToSend.toRaw(); networkManager.Send(byteToSend); } } else { Logger.Show("All numbers are registered", ConsoleColor.White); packetToSend = new ActivationPacket(sim_number, start, finish); byteToSend = packetToSend.toRaw(); networkManager.Send(byteToSend); } } catch (Exception e) { Logger.ShowError(e.Message); } }
/// <summary> /// </summary> /// <param name="frame"></param> /// <param name="ipPacket">IPv4 or IPv6 packet in frame</param> /// <param name="tcpPacket">TCP packet in frame</param> /// <returns></returns> public static Boolean TryGetIpAndTcpPackets(Frame frame, out AbstractPacket ipPacket, out TcpPacket tcpPacket) { ipPacket = null; //sourceIp=System.Net.IPAddress.None; //destinationIp=System.Net.IPAddress.None; tcpPacket = null; foreach (var p in frame.PacketList) { if (p.GetType() == typeof(RawPacket)) { return(false); } if (p.GetType() == typeof(UdpPacket)) { return(false); } if (p.GetType() == typeof(IPv4Packet)) { ipPacket = p; } else if (p.GetType() == typeof(IPv6Packet)) { ipPacket = p; } else if (p.GetType() == typeof(TcpPacket)) { tcpPacket = (TcpPacket)p; //there is no point in enumarating further than the TCP packet if (ipPacket != null) { return(true); } return(false); } } return(false); }
public static void Send(this AbstractPacket pPacket, Session pSession) { pSession.SendPacket(pPacket.ToArray()); }
public SentEventArgs(AbstractPacket packet) { Packet = packet; }
private void OnReceived(AbstractPacket packet) { OnReceived(new ReceivedEventArgs(packet)); }
public void Send(AbstractPacket packet) { Send(new PacketList(packet)); }
private void OnSent(AbstractPacket packet) { OnSent(new SentEventArgs(packet)); }
public AbstractPacketReceivedEventArgs(AbstractPacket packet) : base(packet) { }
public ReceivedEventArgs(AbstractPacket packet) { Packet = packet; }