Example #1
0
        //HANDLE MESSAGE
        public void HandleMessage()
        {
            string input = Read.ReadLine();

            if (input.StartsWith("mydist"))
            {
                //update distance
                string[] inp  = input.Split();
                string   k    = "" + conP + "," + inp[1];
                int      v    = int.Parse(inp[1]);
                int      dist = int.Parse(inp[2]);
                //if you don't know v, add it to your list
                lock (Proces.myLock)
                {
                    if (!Proces.V.Contains(v))
                    {
                        Proces.V.Add(v);
                        Proces.InitValue(v);
                    }
                    Proces.ndis[k] = dist;
                    Proces.RecomputeV(v);
                }
            }
            else if (input.StartsWith("bericht"))
            {
                string[] delen = input.Split(new char[] { ' ' }, 3);

                if (delen[1] == Proces.MijnPoort.ToString())
                {
                    Console.WriteLine(delen[2]);
                }
                else
                {
                    lock (Proces.myLock)
                    {
                        int sendto = Proces.Nb[int.Parse(delen[1])];
                        Console.WriteLine("Bericht voor {0} doorgestuurd naar {1}", delen[1], sendto);
                        Proces.Buren[sendto].Write.WriteLine(input);
                    }
                }
            }
            else if (input.StartsWith("reqTab"))
            {
                lock (Proces.myLock)
                {
                    Proces.messageMyTable(conP);
                }
            }
            else if (input.StartsWith("disconnect"))
            {
                throw new Exception();
            }
        }
Example #2
0
        // LET OP: Nadat er verbinding is gelegd, kun je vergeten wie er client/server is (en dat kun je aan het Connection-object dus ook niet zien!)

        // Deze loop leest wat er binnenkomt en print dit
        public void ReaderThread()
        {
            //first check if all connections are set and initialized
            while (!Proces.Ready)
            {
                Thread.Sleep(1000);
            }
            try
            {
                while (true)
                {
                    HandleMessage();
                }
            }
            catch // Verbinding is kennelijk verbroken
            {
                lock (Proces.myLock)
                {
                    Proces.Disconnect(conP);
                }
            }
        }