Exemple #1
0
        private void handleLobby()
        {
            DW.RegisterDistrict initPacket = new DW.RegisterDistrict(Program.Type, Program.ID, Program.Language, Program.Password, Program.IP, Program.Port, Program.Token);
            stream.Write(initPacket.ToArray(), 0, initPacket.ToArray().Length);
            stream.Flush();
            Byte[] message = new Byte[4096];
            int bytesRead;
            while (true)
            {
                bytesRead = 0;
                try
                {
                    bytesRead = stream.Read(message, 0, 4096);
                }
                catch
                {
                    break;
                }
                if (bytesRead == 0)
                {
                    break;
                }

                IPacket packet = null;
                switch (message[0])
                {
                    case (Byte)OpCodes.WD_MSG_INFO:
                        packet = new MessageInfo();
                        break;
                }
                packet.Write(message, 1, bytesRead - 1);
                packet.Handle();
            }
            Log.Error("World.Client", "World server disconnected! Reconnecting...");
            client.Close();
            stream.Dispose();
            try
            {
                client = new TcpClient();
                connect(address);
                stream = client.GetStream();
                Log.Succes("World.Client", "Reconnected!");
                handleLobby();
            }
            catch(Exception e)
            {
                Log.Error("World.Client", "Failed to reconnect due to following exception:\n\n");
                Console.WriteLine(e.ToString());
                return;
            }
        }
Exemple #2
0
        private void handleLobby()
        {
            DW.RegisterDistrict initPacket = new DW.RegisterDistrict(Program.Type, Program.ID, Program.Language, Program.Password, Program.IP);
            stream.Write(initPacket.ToArray(), 0, initPacket.ToArray().Length);
            stream.Flush();
            Byte[] message = new Byte[4096];
            int bytesRead;
            while (true)
            {
                bytesRead = 0;
                try
                {
                    bytesRead = stream.Read(message, 0, 4096);
                }
                catch
                {
                    break;
                }
                if (bytesRead == 0)
                {
                    break;
                }

                IPacket packet = null;
                switch (message[0])
                {
                    case (Byte)OpCodes.WD_DB_INFO:
                        packet = new DBInfo();
                        break;
                }
                packet.Write(message, 1, bytesRead - 1);
                packet.Handle();
            }
            Log.Error("World.Client", "World server disconnected! Reconnecting...");
            client.Close();
            stream.Dispose();
            client = new TcpClient();
            connect(address);
            stream = client.GetStream();
            Log.Succes("World.Client", "Reconnected!");
            handleLobby();
        }