Exemple #1
0
        public void Disconnect()
        {
            ServerGetCMD.RemoveClient(this);
            ClientTCP.Close();

            Console.WriteLine(ClientIP + " lecsatlakozott ekkor " + DateTime.Now + " innen " + ClientIP);
            IOs.MakeLog(ClientIP + " lecsatlakozott innen " + ClientIP, 0);
        }
Exemple #2
0
        public void GetCMD()
        {
            while (ReceiveCMD)
            {
                try
                {
                    byte[] buffer = new byte[ClientTCP.ReceiveBufferSize];

                    ClientStream.Read(buffer, 0, buffer.Length);

                    string msg = Encoding.UTF8.GetString(buffer).TrimEnd('\0').Replace("/checkLife", "");

                    string answ = "";

                    if (msg == "")
                    {
                        answ = "/alive";

                        buffer = Encoding.UTF8.GetBytes(answ);

                        ClientStream.Write(buffer, 0, buffer.Length);

                        Thread.Sleep(ClientTCP.ReceiveTimeout - 4500);

                        continue;
                    }


                    string cmd = ManageCMDs.GetCMD(msg);
                    msg = msg.Replace("/" + cmd + " ", "");

                    answ = ManageCMDs.WhichCMD(cmd, msg);

                    if (answ == null)
                    {
                        answ = "nem található parancs";
                    }

                    if (answ.StartsWith("###"))
                    {
                        answ = answ.Remove(0, 3);
                    }

                    buffer = Encoding.UTF8.GetBytes(answ);
                    ClientStream.Write(buffer, 0, buffer.Length);

                    Thread.Sleep(500);

                    continue;
                }
                catch (IOException ex)
                {
                    Console.WriteLine("A " + ClientIP + " bezárta a kapcsolatot");
                    IOs.MakeLog("A " + ClientIP + " bezárta a kapcsolatot::" + ex.Message, 0);
                }
                catch (SocketException ex)
                {
                    if (ex.SocketErrorCode == SocketError.TimedOut)
                    {
                        if (errcounter < 10)
                        {
                            errcounter++;
                            ClientTCP.ReceiveTimeout += errcounter * 1000;
                            ClientTCP.SendTimeout    += errcounter * 1000;
                            GetCMD();
                        }
                        else
                        {
                            Console.WriteLine("A szerver nem válaszolt a megadott időn belűl!");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Hiba lépett fel a szerverrel való kommunikáció közben");
                        IOs.MakeLog("Hiba lépett fel a szerverrel való kommunikáció közben::" + ex.Message + ":::" + ex.SocketErrorCode.ToString(), 0);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Hiba lépett fel a csomagfogádasa közben");
                    IOs.MakeLog("A " + ClientIP + " ismeretlen hiba lépett fel::" + ex.Message, 0);
                }
                ReceiveCMD = false;
            }
            Disconnect();
        }