/* * Copyright (c) 2005-2006 Erik Tigerholm * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ namespace OpenTraffic.Network { using System.Net.Sockets; using System.Net; using System; class PingPacket : Packet { public PingPacket(UdpClient n, IPEndPoint ip) : base(n, (int)PACKET_TYPES.PING, ip) { } public PingPacket(UdpClient n, IPEndPoint ip, int size) : base(n, (int)PACKET_TYPES.PING, ip) { data = new byte[size]; for (int i = 0; i < data.Length; i++) { data[i] = (byte)i; } } protected override void Deserialize(byte[] bytes) { if (bytes != null) { for (int i = 0; i < bytes.Length; i++) { System.Diagnostics.Debug.Assert((byte)i == bytes[i]); } } } public override void DoAction() { n.AddPacketToSend(new AckPacket(this.n, this.ip, this.Sequence)); } public override void DoAck() { Console.WriteLine("PONG"); } } }