public void Transmit(Packet p, Socket self) { if (p == null) { Console.WriteLine(GetTime() + " | No Packet"); } else { //Console.WriteLine(GetTime() + " | packet recv, from " + p.src + " to " + p.dest + " ack?: " + p.ack + " seq " + p.seq + " "); if (rand.NextDouble() > lossRate) { Console.WriteLine(GetTime() + " | packet recv, from " + p.src + " to " + p.dest + " ack?: " + p.ack + " seq " + p.seq + " "); //Console.WriteLine("Success"); foreach (Socket s in sockets) { if (s != self) s.Recieve(p); } } else { //Console.WriteLine("Loss"); } } }
public Socket GenerateSocket() { Socket s = new Socket(this); sockets.AddLast(s); return s; }
public TransitPacket(Packet p,int time,Socket s) { this.p = p; this.transitTime = time; this.source = s; }