예제 #1
0
파일: Network.cs 프로젝트: Kurios/ACKsim
        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");
                }
            }
        }
예제 #2
0
파일: Network.cs 프로젝트: Kurios/ACKsim
 public Socket GenerateSocket()
 {
     Socket s = new Socket(this);
     sockets.AddLast(s);
     return s;
 }
예제 #3
0
파일: Network.cs 프로젝트: Kurios/ACKsim
 public TransitPacket(Packet p,int time,Socket s)
 {
     this.p = p;
     this.transitTime = time;
     this.source = s;
 }