diff --git a/ClassLibrary/ClassLibrary.cs b/ClassLibrary/ClassLibrary.cs
index c660c4a..6e673b8 100644
--- a/ClassLibrary/ClassLibrary.cs
+++ b/ClassLibrary/ClassLibrary.cs
@@ -57,7 +57,11 @@ public enum MESSAGE_TYPE
CONNECTION,
DISCONNECTION,
DONNER_ID,
- MESSAGE_BRUTE
+ MESSAGE_BRUTE,
+ MODIFY_FILE,
+ GET_FILE,
+ DELETE_FILE,
+ CREATE_FILE
}
}
}
diff --git a/QLS UI/App.config b/QLS UI/App.config
new file mode 100644
index 0000000..79afc31
--- /dev/null
+++ b/QLS UI/App.config
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 127.0.0.1
+
+
+ 30000
+
+
+
+
\ No newline at end of file
diff --git a/QLS UI/App.xaml b/QLS UI/App.xaml
new file mode 100644
index 0000000..b22212b
--- /dev/null
+++ b/QLS UI/App.xaml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/QLS UI/App.xaml.cs b/QLS UI/App.xaml.cs
new file mode 100644
index 0000000..f5ff6b1
--- /dev/null
+++ b/QLS UI/App.xaml.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace QLS_UI
+{
+ ///
+ /// Logique d'interaction pour App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/Quick Local Server/Config/log4net.config b/QLS UI/Config/log4net.config
similarity index 100%
rename from Quick Local Server/Config/log4net.config
rename to QLS UI/Config/log4net.config
diff --git a/Quick Local Server/Config/log4net.unix.config b/QLS UI/Config/log4net.unix.config
similarity index 100%
rename from Quick Local Server/Config/log4net.unix.config
rename to QLS UI/Config/log4net.unix.config
diff --git a/QLS UI/MainWindow.xaml b/QLS UI/MainWindow.xaml
new file mode 100644
index 0000000..814b1e9
--- /dev/null
+++ b/QLS UI/MainWindow.xaml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/QLS UI/MainWindow.xaml.cs b/QLS UI/MainWindow.xaml.cs
new file mode 100644
index 0000000..0df319f
--- /dev/null
+++ b/QLS UI/MainWindow.xaml.cs
@@ -0,0 +1,125 @@
+using sck_server;
+using SuperSocket.SocketEngine.Configuration;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Timers;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Path = System.IO.Path;
+
+namespace QLS_UI
+{
+ ///
+ /// Logique d'interaction pour MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ Timer T_ExecutionTime = new Timer(1000);
+ TimeSpan Temps = new TimeSpan();
+ private ZoneckServer serveur;
+
+ public MainWindow()
+ {
+ InitializeComponent();
+
+ txtBox_ip.Text = Properties.Settings.Default.ip;
+ txtBox_port.Text = Properties.Settings.Default.port;
+ }
+
+ ///
+ /// Lance le serveur
+ ///
+ ///
+ ///
+ private void Button_Start_Click(object button, RoutedEventArgs _e)
+ {
+ try
+ {
+ serveur = new ZoneckServer(txtBox_ip.Text, Convert.ToInt32(txtBox_port.Text), DebugMessage);
+
+ Properties.Settings.Default.ip = txtBox_ip.Text;
+ Properties.Settings.Default.port = txtBox_port.Text;
+ Properties.Settings.Default.Save();
+
+ rtb_logs.AppendText(DateTime.Now.ToString() + " - Server startup");
+
+ Grid_Setup.Visibility = Visibility.Hidden;
+ Grid_Logs.Visibility = Visibility.Visible;
+
+ label_ipport.Text = txtBox_ip.Text + " - " + Convert.ToInt32(txtBox_port.Text);
+ T_ExecutionTime.Elapsed += (sender, e) =>
+ {
+ Temps = Temps.Add(new TimeSpan(0, 0, 1));
+
+ Dispatcher.Invoke(() =>
+ {
+ label_temps.Content = "temps : " + Temps.ToString(@"hh\:mm\:ss");
+ });
+ };
+
+ T_ExecutionTime.Start();
+ }
+ catch
+ {
+ MessageBox.Show("Le serveur n'a pas réussi à se lancer. Veuillez vérifier les informations.", "Mauvaise(s) information(s)", MessageBoxButton.OK, MessageBoxImage.Error);
+ txtBox_port.BorderBrush = Brushes.Red;
+ txtBox_ip.BorderBrush = Brushes.Red;
+ }
+ }
+
+ private void DebugMessage(string obj)
+ {
+ Dispatcher.Invoke(() =>
+ {
+ if (obj.Contains("[nbre-personne-connecté] - "))
+ {
+ label_connecter.Content = "connecté : " + obj.Remove(0, obj.LastIndexOf('-') + 2).Trim();
+ }
+ if (checkbox_logs.IsChecked == true)
+ {
+ rtb_logs.AppendText(obj + "\r\n");
+ rtb_logs.ScrollToEnd();
+ }
+ });
+ }
+
+ private void Button_StopStartServer_Click(object sender, RoutedEventArgs e)
+ {
+ if (((Button)sender).Content.ToString() == "Stop")
+ {
+ serveur.StopServer();
+ T_ExecutionTime.Stop();
+
+ rtb_logs.AppendText("\n" + DateTime.Now.ToString() + " - Serveur stoppé" + "\r\n");
+ rtb_logs.ScrollToEnd();
+
+ (sender as Button).Content = "Lancer";
+ }
+ else
+ {
+ (sender as Button).Content = "Stop";
+ try
+ {
+ serveur = new ZoneckServer(txtBox_ip.Text, Convert.ToInt32(txtBox_port.Text), DebugMessage);
+ rtb_logs.AppendText("\n" + DateTime.Now.ToString() + " - Serveur lancé" + "\r\n");
+ rtb_logs.ScrollToEnd();
+ }
+ catch
+ {
+ MessageBox.Show("Le serveur n'a pas réussi à se lancer. Veuillez vérifier les informations.", "Mauvaise(s) information(s)", MessageBoxButton.OK, MessageBoxImage.Error);
+ }
+ }
+ }
+ }
+}
diff --git a/QLS UI/Properties/AssemblyInfo.cs b/QLS UI/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..e3b799e
--- /dev/null
+++ b/QLS UI/Properties/AssemblyInfo.cs
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// Les informations générales relatives à un assembly dépendent de
+// l'ensemble d'attributs suivant. Pour modifier les informations
+// associées à un assembly.
+[assembly: AssemblyTitle("QLS UI")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("QLS UI")]
+[assembly: AssemblyCopyright("Copyright © 2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
+// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
+// COM, affectez la valeur True à l'attribut ComVisible sur ce type.
+[assembly: ComVisible(false)]
+
+//Pour commencer à générer des applications localisables, définissez
+//CultureUtiliséePourCoder dans votre fichier .csproj
+//dans . Par exemple, si vous utilisez le français
+//dans vos fichiers sources, définissez à fr-FR. Puis, supprimez les marques de commentaire de
+//l'attribut NeutralResourceLanguage ci-dessous. Mettez à jour "fr-FR" dans
+//la ligne ci-après pour qu'elle corresponde au paramètre UICulture du fichier projet.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //où se trouvent les dictionnaires de ressources spécifiques à un thème
+ //(utilisé si une ressource est introuvable dans la page,
+ // ou dictionnaires de ressources de l'application)
+ ResourceDictionaryLocation.SourceAssembly //où se trouve le dictionnaire de ressources générique
+ //(utilisé si une ressource est introuvable dans la page,
+ // dans l'application ou dans l'un des dictionnaires de ressources spécifiques à un thème)
+)]
+
+
+// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
+//
+// Version principale
+// Version secondaire
+// Numéro de build
+// Révision
+//
+// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
+// en utilisant '*', comme indiqué ci-dessous :
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/QLS UI/Properties/Resources.Designer.cs b/QLS UI/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..67307a8
--- /dev/null
+++ b/QLS UI/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// Ce code a été généré par un outil.
+// Version du runtime :4.0.30319.42000
+//
+// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
+// le code est régénéré.
+//
+//------------------------------------------------------------------------------
+
+namespace QLS_UI.Properties
+{
+
+
+ ///
+ /// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées.
+ ///
+ // Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder
+ // Ã l'aide d'un outil, tel que ResGen ou Visual Studio.
+ // Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
+ // avec l'option /str ou régénérez votre projet VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Retourne l'instance ResourceManager mise en cache utilisée par cette classe.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("QLS_UI.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Remplace la propriété CurrentUICulture du thread actuel pour toutes
+ /// les recherches de ressources à l'aide de cette classe de ressource fortement typée.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/QLS UI/Properties/Resources.resx b/QLS UI/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/QLS UI/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/QLS UI/Properties/Settings.Designer.cs b/QLS UI/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..4158e28
--- /dev/null
+++ b/QLS UI/Properties/Settings.Designer.cs
@@ -0,0 +1,50 @@
+//------------------------------------------------------------------------------
+//
+// Ce code a été généré par un outil.
+// Version du runtime :4.0.30319.42000
+//
+// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
+// le code est régénéré.
+//
+//------------------------------------------------------------------------------
+
+namespace QLS_UI.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("127.0.0.1")]
+ public string ip {
+ get {
+ return ((string)(this["ip"]));
+ }
+ set {
+ this["ip"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("30000")]
+ public string port {
+ get {
+ return ((string)(this["port"]));
+ }
+ set {
+ this["port"] = value;
+ }
+ }
+ }
+}
diff --git a/QLS UI/Properties/Settings.settings b/QLS UI/Properties/Settings.settings
new file mode 100644
index 0000000..82a1395
--- /dev/null
+++ b/QLS UI/Properties/Settings.settings
@@ -0,0 +1,12 @@
+
+
+
+
+
+ 127.0.0.1
+
+
+ 30000
+
+
+
\ No newline at end of file
diff --git a/Quick Local Server/Quick Local Server.csproj b/QLS UI/QLS UI.csproj
similarity index 65%
rename from Quick Local Server/Quick Local Server.csproj
rename to QLS UI/QLS UI.csproj
index 38887e1..46fda3b 100644
--- a/Quick Local Server/Quick Local Server.csproj
+++ b/QLS UI/QLS UI.csproj
@@ -4,12 +4,14 @@
Debug
AnyCPU
- {84E7EF2B-A009-4F89-9F30-A0628741701F}
- Exe
- Quick_Local_Server
- Quick Local Server
+ {0CFC2209-2E4C-447E-8E7E-5E9C2E21BB40}
+ WinExe
+ QLS_UI
+ QLS UI
v4.7.2
512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
true
true
@@ -33,7 +35,7 @@
4
- logo_final.ico
+ icon.ico
@@ -56,26 +58,69 @@
+
+
+
-
-
-
+
+ 4.0
+
+
+
+
-
-
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
-
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
{66a04f51-acc6-4da7-bdd6-c43e6a6654ed}
@@ -83,7 +128,10 @@
-
+
+
+
+
\ No newline at end of file
diff --git a/Quick Local Server/logo_final.ico b/QLS UI/icon.ico
similarity index 100%
rename from Quick Local Server/logo_final.ico
rename to QLS UI/icon.ico
diff --git a/QLS UI/icon.png b/QLS UI/icon.png
new file mode 100644
index 0000000..41238c2
Binary files /dev/null and b/QLS UI/icon.png differ
diff --git a/Quick Local Server/packages.config b/QLS UI/packages.config
similarity index 100%
rename from Quick Local Server/packages.config
rename to QLS UI/packages.config
diff --git a/Quick Local Server/supersocket.cmd b/QLS UI/supersocket.cmd
similarity index 100%
rename from Quick Local Server/supersocket.cmd
rename to QLS UI/supersocket.cmd
diff --git a/Quick Local Server/supersocket.sh b/QLS UI/supersocket.sh
similarity index 100%
rename from Quick Local Server/supersocket.sh
rename to QLS UI/supersocket.sh
diff --git a/Quick Local Server/App.config b/Quick Local Server/App.config
deleted file mode 100644
index 56efbc7..0000000
--- a/Quick Local Server/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Quick Local Server/Program.cs b/Quick Local Server/Program.cs
deleted file mode 100644
index 6ef22a7..0000000
--- a/Quick Local Server/Program.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using sck_server;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Quick_Local_Server
-{
- internal class Program
- {
- static void Main(string[] args)
- {
- START:
- Console.WriteLine("Entrez une adresse Ip ou laisser vide pour utiliser : 127.0.0.1 (fonctionnera sur cette ordinateur)");
- string output = Console.ReadLine();
- string ip = String.IsNullOrWhiteSpace(output) ? "127.0.0.1" : output;
-
- Console.WriteLine("Entrez un port ou laisser vide pour utiliser : 30000");
- output = Console.ReadLine();
- string port = String.IsNullOrWhiteSpace(output) ? "30000" : output;
-
- try
- {
- ZoneckServer serveur = new ZoneckServer(ip, Convert.ToInt32(port));
- }
- catch
- {
- Console.WriteLine("Information invalide.");
- goto START;
- }
- }
- }
-}
diff --git a/Quick Local Server/Properties/AssemblyInfo.cs b/Quick Local Server/Properties/AssemblyInfo.cs
deleted file mode 100644
index 22296a0..0000000
--- a/Quick Local Server/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// Les informations générales relatives à un assembly dépendent de
-// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
-// associées à un assembly.
-[assembly: AssemblyTitle("Quick Local Server")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Quick Local Server")]
-[assembly: AssemblyCopyright("Copyright © 2022")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
-// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
-// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
-[assembly: ComVisible(false)]
-
-// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
-[assembly: Guid("84e7ef2b-a009-4f89-9f30-a0628741701f")]
-
-// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
-//
-// Version principale
-// Version secondaire
-// Numéro de build
-// Révision
-//
-// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
-// en utilisant '*', comme indiqué ci-dessous :
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/server_test/App.config b/server_test/App.config
deleted file mode 100644
index 56efbc7..0000000
--- a/server_test/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/server_test/Config/log4net.config b/server_test/Config/log4net.config
deleted file mode 100644
index c1ebe95..0000000
--- a/server_test/Config/log4net.config
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/server_test/Config/log4net.unix.config b/server_test/Config/log4net.unix.config
deleted file mode 100644
index 3b07772..0000000
--- a/server_test/Config/log4net.unix.config
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/server_test/Program.cs b/server_test/Program.cs
deleted file mode 100644
index f31f568..0000000
--- a/server_test/Program.cs
+++ /dev/null
@@ -1,116 +0,0 @@
-using Newtonsoft.Json;
-using SuperSocket.SocketBase;
-using SuperSocket.SocketBase.Config;
-using SuperSocket.SocketBase.Protocol;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net.Sockets;
-using System.Net;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using static ClassLibrary.ClassLibrary;
-
-namespace server_test
-{
- internal class Program
- {
- static void Main(string[] args)
- {
- ZoneckClient z = new ZoneckClient("Chess", "127.0.01", 30000, Test);
- z.Send("test");
- Console.ReadKey();
- }
-
- private static void Test(Message obj)
- {
- Console.WriteLine(obj.MessageType.ToString());
- }
-
- public class ZoneckClient
- {
- private Socket SocketClient { get; set; }
- public string MyId { get; set; }
- public string AppName { get; }
- internal Action Receive { get; }
-
- public ZoneckClient(string appName, string ip, int port, Action Receive)
- {
- // Créer une instance du SocketClient
- SocketClient = new Socket(SocketType.Stream, ProtocolType.Tcp);
- IPAddress _ip = IPAddress.Parse(ip);
- IPEndPoint point = new IPEndPoint(_ip, port);
-
- // Connexion
- SocketClient.Connect(point);
-
- // Thread pour recevoir les messages du serveur en continu
- Thread thread = new Thread(_Receive);
- thread.IsBackground = true;
- thread.Start();
-
- // Le nom de l'application qui précède le message de connexion
- AppName = appName;
-
- this.Receive = Receive;
- }
-
- ///
- /// Envois un message au serveur
- ///
- /// Le message à envoyer
- public void Send(string str, string toId = "")
- {
- // id > message
- string msg = JsonConvert.SerializeObject(new Message(MyId, str, AppName, MESSAGE_TYPE.MESSAGE, toId)) + "\r\n";
- //Receive(new Message(ConnetionId, str, AppName, MESSAGE_TYPE.MESSAGE));
-
- var buffter = Encoding.UTF8.GetBytes(msg);
- var temp = SocketClient.Send(buffter);
- }
-
- ///
- /// Reçois un message du serveur
- ///
- private void _Receive()
- {
- while (true)
- {
- // Recupère le message reçu
- byte[] buffer = new byte[1024 * 1024 * 2];
- var effective = SocketClient.Receive(buffer);
-
- var message = Encoding.UTF8.GetString(buffer, 0, effective);
-
- if (!String.IsNullOrEmpty(message))
- {
- Message received_message = JsonConvert.DeserializeObject(message);
-
- // Si c'est pour informer de son Id de session et informer ensuite le serveur que nous sommes de l'App (nouvelle connexion)
- if (received_message.MessageType == MESSAGE_TYPE.CONNECTION)
- {
- MyId = received_message.Id;
-
- // Renvois le nom de l'appName en échange
- Message msg = new Message(MyId, string.Empty, AppName, MESSAGE_TYPE.APP_NAME_INFORMATION);
- var buffter = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(msg) + "\r\n");
- var temp = SocketClient.Send(buffter);
- }
- // Si le message est une réponse à une demande de %last_message%
- else if (received_message.MessageType == MESSAGE_TYPE.LAST_MESSAGE) // si c'est un last message
- {
- List lastMessages = JsonConvert.DeserializeObject>(received_message.Content);
-
- Receive(
- new Message(string.Empty, string.Empty, string.Empty, MESSAGE_TYPE.LAST_MESSAGE) { LastMessages = lastMessages }
- );
- }
- else
- Receive(received_message);
- }
- }
- }
- }
- }
-}
diff --git a/server_test/Properties/AssemblyInfo.cs b/server_test/Properties/AssemblyInfo.cs
deleted file mode 100644
index e9642b4..0000000
--- a/server_test/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// Les informations générales relatives à un assembly dépendent de
-// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
-// associées à un assembly.
-[assembly: AssemblyTitle("server_test")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("server_test")]
-[assembly: AssemblyCopyright("Copyright © 2022")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
-// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
-// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
-[assembly: ComVisible(false)]
-
-// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
-[assembly: Guid("5a1d84c6-e7ad-4ea3-bbdf-92b8e2a6d373")]
-
-// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
-//
-// Version principale
-// Version secondaire
-// Numéro de build
-// Révision
-//
-// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
-// en utilisant '*', comme indiqué ci-dessous :
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/server_test/packages.config b/server_test/packages.config
deleted file mode 100644
index 9c5de3a..0000000
--- a/server_test/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/server_test/server_test.csproj b/server_test/server_test.csproj
deleted file mode 100644
index 5a15de8..0000000
--- a/server_test/server_test.csproj
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {5A1D84C6-E7AD-4EA3-BBDF-92B8E2A6D373}
- Exe
- server_test
- server_test
- v4.7.2
- 512
- true
- true
-
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
- ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll
-
-
- ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll
-
-
- ..\packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.Common.dll
-
-
- ..\packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.Facility.dll
-
-
- ..\packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.SocketBase.dll
-
-
- ..\packages\SuperSocket.Engine.1.6.6.1\lib\net45\SuperSocket.SocketEngine.dll
-
-
- ..\packages\SuperSocket.Engine.1.6.6.1\lib\net45\SuperSocket.SocketService.exe
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {8C484037-9DE2-4284-A977-EE8C232BE4DE}
- ClassLibrary
-
-
-
-
\ No newline at end of file
diff --git a/server_test/supersocket.cmd b/server_test/supersocket.cmd
deleted file mode 100644
index 4532661..0000000
--- a/server_test/supersocket.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-SuperSocket.SocketService.exe -c %1 %2
\ No newline at end of file
diff --git a/server_test/supersocket.sh b/server_test/supersocket.sh
deleted file mode 100644
index f3cd0d9..0000000
--- a/server_test/supersocket.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-mono SuperSocket.SocketService.exe -c $1 $2
\ No newline at end of file
diff --git a/setup/QLS Zoneck.exe b/setup/QLS Zoneck.exe
new file mode 100644
index 0000000..f1b73ca
Binary files /dev/null and b/setup/QLS Zoneck.exe differ
diff --git a/setup/Zoneck Server Setup.exe b/setup/Zoneck Server Setup.exe
index 3b4cfdc..65ed622 100644
Binary files a/setup/Zoneck Server Setup.exe and b/setup/Zoneck Server Setup.exe differ
diff --git a/setup/setup.iss b/setup/setup.iss
index 6b5ac64..238bb1b 100644
--- a/setup/setup.iss
+++ b/setup/setup.iss
@@ -1,11 +1,11 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-#define MyAppName "Zoneck Server"
-#define MyAppVersion "1.0.2"
+#define MyAppName "QLS Zoneck"
+#define MyAppVersion "1.0.4"
#define MyAppPublisher "zonetecde"
#define MyAppURL "github.com/zonetecde"
-#define MyAppExeName "Quick Local Server.exe"
+#define MyAppExeName "QLS UI.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
@@ -37,27 +37,27 @@ Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
[Files]
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\ClassLibrary.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\ClassLibrary.pdb"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\log4net.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\log4net.xml"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\Newtonsoft.Json.xml"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\Quick Local Server.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\Quick Local Server.exe.config"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\Quick Local Server.pdb"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.Common.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.Common.xml"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.Facility.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.Facility.xml"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.SocketBase.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.SocketBase.xml"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.SocketEngine.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.SocketEngine.xml"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\SuperSocket.SocketService.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\zck_server.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\Quick Local Server\bin\Debug\zck_server.pdb"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\ClassLibrary.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\ClassLibrary.pdb"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\log4net.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\log4net.xml"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\Newtonsoft.Json.xml"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\QLS UI.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\QLS UI.exe.config"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\QLS UI.pdb"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.Common.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.Common.xml"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.Facility.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.Facility.xml"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.SocketBase.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.SocketBase.xml"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.SocketEngine.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.SocketEngine.xml"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\SuperSocket.SocketService.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\zck_server.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "C:\Users\zonedetec\OneDrive - Conseil régional Grand Est - Numérique Educatif\Programmation\c#\zoneck server\QLS UI\bin\Debug\zck_server.pdb"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
diff --git a/zck_client/ClassLibrary.cs b/zck_client/ClassLibrary.cs
new file mode 100644
index 0000000..e51f21f
--- /dev/null
+++ b/zck_client/ClassLibrary.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace zck_client
+{
+ public class ClassLibrary
+ {
+ public class LastMessage
+ {
+ public string userID;
+ public string lastMessage;
+
+ public LastMessage(string userID, string lastMessage)
+ {
+ this.userID = userID;
+ this.lastMessage = lastMessage;
+ }
+ }
+
+ public class User
+ {
+ public string userID;
+ public string userApp;
+ public string lastMessage;
+
+ public User(string userID)
+ {
+ this.userID = userID;
+ this.userApp = string.Empty ;
+ }
+ }
+
+ public class Message
+ {
+ public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "")
+ {
+ Id = id;
+ Content = content;
+ MessageType = messageType;
+ ToId = toId;
+ }
+
+ public string Id { get; set; }
+ public string Content { get; set; }
+ public string ToId { get; set; }
+
+
+ public MESSAGE_TYPE MessageType { get; set; }
+ }
+
+ public enum MESSAGE_TYPE
+ {
+ MESSAGE,
+ CONNECTION,
+ DISCONNECTION,
+ DONNER_ID,
+ MESSAGE_BRUTE,
+ MODIFY_FILE,
+ GET_FILE,
+ DELETE_FILE,
+ CREATE_FILE
+ }
+
+ }
+}
diff --git a/zck_client/ZoneckClient.cs b/zck_client/ZoneckClient.cs
index c2f6520..f5f8d11 100644
--- a/zck_client/ZoneckClient.cs
+++ b/zck_client/ZoneckClient.cs
@@ -5,8 +5,7 @@
using System.Net.Sockets;
using System.Text;
using System.Threading;
-using ClassLibrary;
-using static ClassLibrary.ClassLibrary;
+using static zck_client.ClassLibrary;
namespace zck_client
{
diff --git a/zck_client/zck_client.csproj b/zck_client/zck_client.csproj
index 341acfe..003632b 100644
--- a/zck_client/zck_client.csproj
+++ b/zck_client/zck_client.csproj
@@ -31,9 +31,6 @@
4
-
- ..\ClassLibrary\bin\Debug\ClassLibrary.dll
-
..\packages\log4net.2.0.3\lib\net40-full\log4net.dll
@@ -66,6 +63,7 @@
+
diff --git a/zck_server/ZoneckServer.cs b/zck_server/ZoneckServer.cs
index dbfa588..92a4cca 100644
--- a/zck_server/ZoneckServer.cs
+++ b/zck_server/ZoneckServer.cs
@@ -4,6 +4,7 @@
using SuperSocket.SocketBase.Protocol;
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Threading.Tasks;
using static ClassLibrary.ClassLibrary;
@@ -13,18 +14,25 @@ namespace sck_server
public class ZoneckServer
{
static AppServer Server { get; set; }
+ private static Action DebugMessage { get; set; }
- private static bool enableDebug = false;
+ public Exception WrongIpOrPortException { get; }
+ public Exception FailedToStartException { get; }
- public ZoneckServer(string IP = "127.0.0.1", int Port = 30000)
+ private static int NumberClient = 0;
+
+ private static bool enableDebug = true;
+
+ public ZoneckServer(string IP = "127.0.0.1", int Port = 30000, Action _DebugMessage = null)
{
Server = new AppServer();
+ DebugMessage = _DebugMessage;
var m_Config = new ServerConfig
{
Port = Port,
Mode = SocketMode.Tcp,
- Name = "serveur",
+ Name = "QLS_Zoneck",
TextEncoding = "UTF-8",
Ip = IP,
MaxRequestLength = int.MaxValue,
@@ -34,17 +42,13 @@ public ZoneckServer(string IP = "127.0.0.1", int Port = 30000)
// essaye de setup le serveur
if (!Server.Setup(m_Config))//Setup with listening port
{
- Console.WriteLine("Failed to setup!");
- Console.ReadKey();
- return;
+ throw WrongIpOrPortException;
}
// essaye de start le serveur
if (!Server.Start())
{
- Console.WriteLine("Failed to start!");
- Console.ReadKey();
- return;
+ throw FailedToStartException;
}
// server start
@@ -58,22 +62,21 @@ public ZoneckServer(string IP = "127.0.0.1", int Port = 30000)
// message reçu d'une personne
Server.NewRequestReceived += new RequestHandler(appServer_NewRequestReceived);
- Console.WriteLine("Type 'Y' to enable logs");
- if (Console.ReadLine() == "Y")
- enableDebug = true;
+ enableDebug = DebugMessage != null;
- // pour quitter le serveur ou activer debug
- while (Console.ReadKey().KeyChar != 'q')
- {
- Console.WriteLine();
- continue;
- }
+ //System.Threading.Thread.Sleep(100000);
+
+ //while (Console.ReadKey().KeyChar != 'q')
+ //{
+ // Console.WriteLine();
+ // continue;
+ //}
+ }
+ public void StopServer()
+ {
// serveur stoppé
Server.Stop();
-
- Console.WriteLine("The Server was stopped!");
- Console.ReadKey();
}
///
@@ -81,10 +84,13 @@ public ZoneckServer(string IP = "127.0.0.1", int Port = 30000)
///
/// La session de la nouvelle connexion
static void appServer_NewSessionConnected(AppSession session)
- {
+ {
+ NumberClient++;
// debug log
- if(enableDebug)
- Console.WriteLine("[server-connexion] as " + session.SessionID);
+ if (enableDebug)
+ {
+ DebugMessage(DateTime.Now.ToString() + " - " + "[server-connexion] as " + session.SessionID);
+ }
session.Send(JsonConvert.SerializeObject(new Message("serveur", session.SessionID, MESSAGE_TYPE.DONNER_ID))); // Envois l'id au client
@@ -99,9 +105,12 @@ static void appServer_NewSessionConnected(AppSession session)
u.Send(msg);
// debug log
if (enableDebug)
- Console.WriteLine("Envois à " + u.SessionID + " que " + session.SessionID + " s'est connecté.");
+ DebugMessage(DateTime.Now.ToString() + " - " + "[connexion-information-sender] to " + u.SessionID + " that " + session.SessionID + " is connected");
}
}
+
+ if (enableDebug)
+ DebugMessage(DateTime.Now.ToString() + " - [nbre-personne-connecté] - " + (NumberClient));
}
///
@@ -111,6 +120,8 @@ static void appServer_NewSessionConnected(AppSession session)
/// La raison de la déconnexion
static void appServer_NewSessionClosed(AppSession session, CloseReason aaa)
{
+ NumberClient--;
+
// Créer le message de déconnexion à envoyer à toutes les personnes connecté au serveur sur la même App
Message message_disconnection_as = new Message(session.SessionID, string.Empty, MESSAGE_TYPE.DISCONNECTION);
@@ -129,13 +140,13 @@ static void appServer_NewSessionClosed(AppSession session, CloseReason aaa)
}
// debug log
- string disconnectionMessage = session.SessionID + " %disconnection%";
+ string disconnectionMessage = "[disconnection] of " + session.SessionID;
if (enableDebug)
- Console.WriteLine(DateTime.Now.ToString() + " - " + disconnectionMessage);
+ DebugMessage(DateTime.Now.ToString() + " - " + disconnectionMessage);
// debug log : nombre de personne connectée sur le serveur
if (enableDebug)
- Console.WriteLine("utilisateur connecté au serveur " + Server.GetAllSessions().Count());
+ DebugMessage(DateTime.Now.ToString() + " - [nbre-personne-connecté] - " + NumberClient);
}
///
@@ -147,44 +158,77 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest
{
// récupère le message
string message_brute = (requestInfo.Key + " " + requestInfo.Body).Replace("\r\n", string.Empty);
+
if (!message_brute.Contains("@[B]"))
{
-
Message received_message = JsonConvert.DeserializeObject(message_brute);
- // debug log
- if (enableDebug)
- Console.WriteLine(DateTime.Now.ToString() + " - " + received_message.Id + " pour " + received_message.ToId == string.Empty ? "tout le monde" : received_message.ToId + " > " + received_message.Content);
+ if (received_message.MessageType == MESSAGE_TYPE.CREATE_FILE)
+ {
+ Directory.CreateDirectory(Path.GetDirectoryName(received_message.Content));
+ if (enableDebug)
+ DebugMessage((DateTime.Now.ToString() + " - " + received_message.Id + " created ") + received_message.Content);
+ }
+ else if (received_message.MessageType == MESSAGE_TYPE.DELETE_FILE)
+ {
+ File.Delete(received_message.Content);
+ if (enableDebug)
+ DebugMessage((DateTime.Now.ToString() + " - " + received_message.Id + " deleted ") + received_message.Content);
+ }
+ else if (received_message.MessageType == MESSAGE_TYPE.MODIFY_FILE)
+ {
+ // filepath,content
+ string fPath = received_message.Content.Split(new[] { ',' }, 2)[0];
+ string content = received_message.Content.Split(new[] { ',' }, 2)[1];
+ File.WriteAllText(fPath, content);
- // si c'est pour tout le monde ou pour une personne en particulier
- if (String.IsNullOrEmpty(received_message.ToId))
+ if (enableDebug)
+ DebugMessage((DateTime.Now.ToString() + " - " + received_message.Id + " modified ") + fPath + " : " + content);
+ }
+ else if (received_message.MessageType == MESSAGE_TYPE.GET_FILE)
{
- foreach (var u in Server.GetAllSessions().ToList())
+ // filepath
+ File.ReadAllText(received_message.Content);
+
+ if (enableDebug)
+ DebugMessage((DateTime.Now.ToString() + " - " + received_message.Id + " get ") + received_message.Content + "'s file content");
+ }
+ else
+ {
+ // debug log
+ if (enableDebug)
+ DebugMessage((DateTime.Now.ToString() + " - [message-send] from " + received_message.Id + " to ") + received_message.ToId == string.Empty ? "everyone" : received_message.ToId + " : " + received_message.Content);
+
+
+ // si c'est pour tout le monde ou pour une personne en particulier
+ if (String.IsNullOrEmpty(received_message.ToId))
{
- if (u.SessionID != clientSession.SessionID)
+ foreach (var u in Server.GetAllSessions().ToList())
{
- if (received_message.ToId == string.Empty || received_message.ToId == u.SessionID) // gère l'envois de tt le monde ou private message
+ if (u.SessionID != clientSession.SessionID)
{
- u.Send(message_brute);
+ if (received_message.ToId == string.Empty || received_message.ToId == u.SessionID) // gère l'envois de tt le monde ou private message
+ {
+ u.Send(message_brute);
- if (enableDebug)
- Console.WriteLine("Envois d'un message de " + clientSession.SessionID + " Ã " + u.SessionID + " : " + message_brute);
+ if (enableDebug)
+ DebugMessage(DateTime.Now.ToString() + " - [private-message-send] from " + clientSession.SessionID + " to " + u.SessionID + " : " + message_brute);
+ }
}
}
}
- }
- else
- {
- if (Server.GetSessionByID(received_message.ToId).TrySend(message_brute))
- {
- if (enableDebug)
- Console.WriteLine("[MESSAGE PRIVE] de " + received_message.Id + " Ã " + received_message.ToId);
- }
else
{
- if (enableDebug)
- Console.WriteLine("pas envoyé, erreur!");
+ if (Server.GetSessionByID(received_message.ToId).TrySend(message_brute))
+ {
+ if (enableDebug)
+ DebugMessage(DateTime.Now.ToString() + " - [private-message] from " + received_message.Id + " to " + received_message.ToId);
+ }
+ else
+ {
+
+ }
}
}
}
@@ -192,7 +236,7 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest
{
// message brute
if (enableDebug)
- Console.WriteLine("[MESSAGE PRIVE BRUTE]");
+ DebugMessage(DateTime.Now.ToString() + " - [private-brute-message-send] from " + clientSession.SessionID + " to " + message_brute.Split(',').Last().Trim());
Server.GetAllSessions().ToList().FirstOrDefault(x => x.SessionID == message_brute.Split(',').Last().Trim()).Send(message_brute);
}
diff --git a/zoneck server.sln b/zoneck server.sln
index f3b4322..cea213a 100644
--- a/zoneck server.sln
+++ b/zoneck server.sln
@@ -8,15 +8,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
.editorconfig = .editorconfig
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quick Local Server", "Quick Local Server\Quick Local Server.csproj", "{84E7EF2B-A009-4F89-9F30-A0628741701F}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zck_server", "zck_server\zck_server.csproj", "{66A04F51-ACC6-4DA7-BDD6-C43E6A6654ED}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zck_client", "zck_client\zck_client.csproj", "{8F29DB71-07F3-4945-BED1-D9666024E00C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary", "ClassLibrary\ClassLibrary.csproj", "{8C484037-9DE2-4284-A977-EE8C232BE4DE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "server_test", "server_test\server_test.csproj", "{5A1D84C6-E7AD-4EA3-BBDF-92B8E2A6D373}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QLS UI", "QLS UI\QLS UI.csproj", "{0CFC2209-2E4C-447E-8E7E-5E9C2E21BB40}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -24,10 +22,6 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {84E7EF2B-A009-4F89-9F30-A0628741701F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {84E7EF2B-A009-4F89-9F30-A0628741701F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {84E7EF2B-A009-4F89-9F30-A0628741701F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {84E7EF2B-A009-4F89-9F30-A0628741701F}.Release|Any CPU.Build.0 = Release|Any CPU
{66A04F51-ACC6-4DA7-BDD6-C43E6A6654ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66A04F51-ACC6-4DA7-BDD6-C43E6A6654ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66A04F51-ACC6-4DA7-BDD6-C43E6A6654ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -40,10 +34,10 @@ Global
{8C484037-9DE2-4284-A977-EE8C232BE4DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C484037-9DE2-4284-A977-EE8C232BE4DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8C484037-9DE2-4284-A977-EE8C232BE4DE}.Release|Any CPU.Build.0 = Release|Any CPU
- {5A1D84C6-E7AD-4EA3-BBDF-92B8E2A6D373}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5A1D84C6-E7AD-4EA3-BBDF-92B8E2A6D373}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5A1D84C6-E7AD-4EA3-BBDF-92B8E2A6D373}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5A1D84C6-E7AD-4EA3-BBDF-92B8E2A6D373}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0CFC2209-2E4C-447E-8E7E-5E9C2E21BB40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0CFC2209-2E4C-447E-8E7E-5E9C2E21BB40}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0CFC2209-2E4C-447E-8E7E-5E9C2E21BB40}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0CFC2209-2E4C-447E-8E7E-5E9C2E21BB40}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE