Beispiel #1
0
        public bool Run(params object[] args)
        {
            var historyBuffer = (HistoryOperations)args[2];

            Socket socket = (Socket)args[3];

            ServerIO _ServerIO = new ServerIO(socket);

            _ServerIO.WriteLine("Input file name:");
            string fileName = _ServerIO.ReadString();

            string sPattern = @"^(([a-zA-Z]:|\\)\\)?(((\.)|(\.\.)|([^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?))\\)*[^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?$";

            if (Regex.IsMatch(fileName, sPattern) && fileName.Length < 255)
            {
                using (StreamWriter sw = new StreamWriter(fileName + ".txt"))
                {
                    for (int i = 0; i < historyBuffer.OperationData.Count; i++)
                    {
                        sw.WriteLine(historyBuffer.OperationData[i]);
                    }
                }
                _ServerIO.WriteLine("Ready!");
            }
            else
            {
                _ServerIO.WriteLine("Uncorrect filename");
            }

            return(true);
        }
Beispiel #2
0
 public ClientHandler(TcpClient client, int id, GameHandler game)
 {
     Client        = client;
     _game         = game;
     FugamId       = new FugamID(Client.GetHashCode(), id);
     _clientThread = new Thread(new ThreadStart(ClientThread));
     ServerIO.Send(Client.GetStream(), new PacketFugamID(FugamId));
 }
Beispiel #3
0
 private void ClientThread()
 {
     while (Client.Connected)
     {
         //Console.WriteLine(FugamId + "\twaiting for packet\t" + DateTime.Now);
         ServerIO.Recieve(Client.GetStream()).HandleServerSide(_game);
         //Console.WriteLine(FugamId + "\tpacket received\t" + DateTime.Now);
     }
 }
Beispiel #4
0
 public void ReceivePacketPlayerPosition(PacketPlayerPosition ppp)
 {
     //Console.WriteLine("Packet received: "+ppp.FugamId.GameID);
     foreach (ClientHandler client in _clients)
     {
         if (!client.FugamId.Equals(ppp.FugamId))
         {
             //Console.WriteLine("Send packet to: " + client.FugamId.GameID);
             ServerIO.Send(client.Client.GetStream(), ppp);
         }
     }
 }
Beispiel #5
0
        //game logic
        private void Game()
        {
            foreach (ClientHandler client in _clients)
            {
                ServerIO.Send(client.Client.GetStream(), new PacketLevel(client.FugamId, "Level_ID1"));
                client.StartClientThread();
            }
            List <FugamID> playerids = _clients.Select(client => client.FugamId).ToList();

            foreach (ClientHandler client in _clients)
            {
                ServerIO.Send(client.Client.GetStream(), new PacketPlayers(client.FugamId, playerids));
            }
        }
Beispiel #6
0
        public void LoadPrices()
        {
            if (this.amount > 0)
            {
                List <DateTime> dates = new List <DateTime>
                {
                    DateTime.Now.AddDays(-this.amount),
                    DateTime.Now
                };

                this.Data = ServerIO.GetPrices(dates);
                var last = this.Data[this.Data.Count - 1];
                this.TextBoxText = String.Format("Курс на {0} - {1}", last.Date.ToShortDateString(), last.Price);
            }
            if (this.RefreshBool)
            {
                this.ScheduleLoad();
            }
        }
Beispiel #7
0
 public override void update()
 {
     if (player != null)
     {
         ServerIO.Send(gsm.Client.GetStream(), new PacketPlayerPosition(gsm.FugamId, player.x, player.y));
     }
     //if (gsm.FugamId != null)
     //{
     //    Console.WriteLine(gsm.FugamId + "\twaiting for packet\t"+DateTime.Now);
     //}
     ServerIO.Recieve(gsm.Client.GetStream()).HandleClientSide(this);
     if (_otherPlayers != null && player != null)
     {
         _level.CheckTriggers(player, _otherPlayers);
         foreach (Player otherplayer in _otherPlayers)
         {
             otherplayer.Update();
         }
         player.Update();
     }
     //Console.WriteLine(gsm.FugamId + "\tpacket received\t" + DateTime.Now);
 }
Beispiel #8
0
 public InOutStream(Socket socket)
 {
     _socket   = socket;
     _ServerIO = new ServerIO(_socket);
 }
Beispiel #9
0
    public string Connect(string host, int port, FileType ftype)
    {
        lock (this)
        {
            string image;

            io = new ServerIO();
            lock (io)
            {
                if (io.Connect(host, port) && (image = io.ReadLine()) != null)
                {
                    if (image.Substring(0, 1) == "-")
                    {
                        Disconnect();
                        return(image.Substring(5));
                    }
                    else
                    {
                        string[] s = image.Substring(5).Split();
                        pid     = s[0];
                        pincode = s[1];
                    }
                }
                else
                {
                    return("Connection to the primary server failed.\r\n\r\nHost " + host + "\r\nPort " + port.ToString());
                }

                io.WriteLine("VERSION 0.3");
                image = io.ReadLine();
                if (image.Substring(0, 1) == "+")
                {
                    server_version = image.Substring(5);

                    io.WriteLine("HOST");
                    image = io.ReadLine();
                    if (image.Substring(0, 1) == "+")
                    {
                        je.WriteToLog("connected to " + image.Substring(5));
                        je.SubItems[(int)Display.where].Text = image.Substring(5);
                    } // else ignore the error

                    je.WriteToLog("server version " + server_version);
                }
                else
                {
                    Disconnect();
                    return(image.Substring(5));
                }

                io.WriteLine(string.Format("CLIENT {0} {1}", Application.ProductName, Houston.HoustonVersion.ToString()));
                image = io.ReadLine();

                io.WriteLine("USER " + Environment.UserName);
                image = io.ReadLine();

                if (!SupportedFileType(ftype))
                {
                    Disconnect();
                    return("The required program is not installed on this server");
                }
            }

            io2 = new ServerIO();
            if (io2.Connect(host, port) && (image = io2.ReadLine()) != null)
            {
                if (image.Substring(0, 1) == "-")
                {
                    Disconnect();
                    return(image.Substring(5));
                } //else ignore pid/pin
            }
            else
            {
                return("Connection to secondary server failed.\r\n\r\nHost " + host + "\r\nPort " + port.ToString());
            }

            io2.WriteLine("VERSION -0.3");
            image = io2.ReadLine();
            if (image.Substring(0, 1) == "+")
            {
            }
            else
            {
                Disconnect();
                return(image.Substring(5));
            }

            io2.WriteLine("PID " + pid);
            io2.ReadLine();
            io2.WriteLine("PIN " + pincode);
            io2.ReadLine();

            return(null);
        }
    }
Beispiel #10
0
        public bool Run(params object[] args)
        {
            string NextLine;
            double result     = 0;
            double lastValue  = 0;
            int    numberLine = 0;
            string outInfo;
            char   operationType;
            var    mathBuffer    = (ValuesBuffer)args[0];
            var    historyBuffer = (HistoryOperations)args[2];
            Socket socket        = (Socket)args[3];

            ServerIO _ServerIO = new ServerIO(socket);

            mathBuffer.variables.Clear();
            mathBuffer.TopValue = 0;

            _ServerIO.WriteLine("Enter file name without extension:");
            string pathFile = Directory.GetCurrentDirectory() + "\\" + _ServerIO.ReadString() + ".txt";

            if (!File.Exists(pathFile))
            {
                _ServerIO.WriteLine("Such file does not exist");
                return(true);
            }


            using (var file = new StreamReader(pathFile))
            {
                while ((NextLine = file.ReadLine()) != null)
                {
                    numberLine++;
                    string[] ParseLine = NextLine.Split(' ');

                    switch (ParseLine.Length)
                    {
                    case 1:
                        outInfo = ParseLine[0];
                        if (Double.TryParse(outInfo, out result))
                        {
                            _ServerIO.WriteLine($"[#{numberLine}] - {result}");
                            mathBuffer.HideSaveValue(result);
                        }
                        else
                        {
                            result = ConvertToInteger(outInfo);
                            _ServerIO.WriteLine($"[#{numberLine}] - {outInfo} = {result}");
                            mathBuffer.HideSaveValue(result);
                        }
                        break;

                    case 3:
                        outInfo       = ParseLine[0];
                        operationType = Convert.ToChar(ParseLine[1]);
                        result        = Convert.ToDouble(ParseLine[2]);
                        lastValue     = SearchLastValue(operationType, mathBuffer.ReturnTopValue(), result);
                        _ServerIO.WriteLine($"[#{numberLine}] - {outInfo} {operationType} {lastValue} = " +
                                            $"{mathBuffer.ReturnTopValue()} {operationType} {lastValue} = {result}");
                        mathBuffer.HideSaveValue(result);
                        break;

                    default:
                        _ServerIO.Write("Parse error!\n");
                        break;
                    }
                }
            }


            return(true);
        }
Beispiel #11
0
    private void ClientConnect()
    {
        string image;

        IPAddress rwhodip = getrwhodserver();

        if (rwhodip == IPAddress.None)
        {
            return;
        }

        SetStatusBarText("Connecting to server...");
        io = new ServerIO();
        try
        {
            if (io.Connect(rwhodip.ToString(), 7040))
            {
                SetStatusBarText("Connected to the server.");

                if ((image = io.ReadLine()) != null)
                {
                    if (image.Substring(0, 1) == "+")
                    {
                        io.WriteLine("MODE ruptime");
                        image = io.ReadLine();
                        if (image.Substring(0, 1) == "+")
                        {
                            connected = true;
                            timer.Change(500, 0);
                        }
                        else
                        {
                            SetStatusBarText("The server doesnot support this feature.");

                            io.WriteLine("QUIT");
                            io.ReadLine(); //Eat the OK
                            io.Disconnect();
                        }
                    }
                    else
                    {
                        SetStatusBarText("Bad response from server: " + image.Substring(5));

                        io.WriteLine("QUIT");
                        io.ReadLine(); //Eat the OK
                        io.Disconnect();
                    }
                }
                else
                {
                    SetStatusBarText("Bad response from server.");
                    io.Disconnect();
                    Thread.Sleep(1000);
                    SetStatusBarText("Disconnected.");
                }
            }
            else
            {
                SetStatusBarText("No response from server: host not found");
            }
        }
        catch (Exception e)
        {
            SetStatusBarText("No response from server: " + e.Message);
        }
    }