diff --git a/.gitignore b/.gitignore index 9cd3ff64..3fb7c02c 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ Output/Songs /VocaluxeLib/bin /ClientServerLib/ClientServerLib/ClientServerLib.csproj.user /ClientServerLib/ClientServerLib/bin/Debug/ClientServerLib.dll +/ClientServerLib/ClientTest/bin/Debug/ClientServerLib.dll diff --git a/ClientServerLib/ClientServerLib.sln b/ClientServerLib/ClientServerLib.sln index 7ebf309a..396e5921 100644 --- a/ClientServerLib/ClientServerLib.sln +++ b/ClientServerLib/ClientServerLib.sln @@ -3,16 +3,38 @@ Microsoft Visual Studio Solution File, Format Version 11.00 # Visual C# Express 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientServerLib", "ClientServerLib\ClientServerLib.csproj", "{EC5167E4-CCFB-4CEE-987C-CF816F1062A3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientTest", "ClientTest\ClientTest.csproj", "{48A825C6-728F-4EBF-B98E-3D4665B3BC9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Debug|x86.ActiveCfg = Debug|Any CPU {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Any CPU.ActiveCfg = Release|Any CPU {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Any CPU.Build.0 = Release|Any CPU + {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {EC5167E4-CCFB-4CEE-987C-CF816F1062A3}.Release|x86.ActiveCfg = Release|Any CPU + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Any CPU.ActiveCfg = Debug|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|x86.ActiveCfg = Debug|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Debug|x86.Build.0 = Debug|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Any CPU.ActiveCfg = Release|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|Mixed Platforms.Build.0 = Release|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|x86.ActiveCfg = Release|x86 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ClientServerLib/ClientServerLib/CClient.cs b/ClientServerLib/ClientServerLib/CClient.cs index 75de55f3..162b2955 100644 --- a/ClientServerLib/ClientServerLib/CClient.cs +++ b/ClientServerLib/ClientServerLib/CClient.cs @@ -24,6 +24,7 @@ namespace ClientServerLib private CConnection connection; private List requests; private List responses; + private OnConnectionChanged onConnectionChanged; public bool Connected { @@ -50,10 +51,12 @@ namespace ClientServerLib clientThread.Start(); } - public void Connect(string IP = "127.0.0.1", int Port = 3000) + public void Connect(string IP = "127.0.0.1", int Port = 3000, OnConnectionChanged OnConnectionChanged = null) { if (!doConnect) { + if (OnConnectionChanged != null) + onConnectionChanged = OnConnectionChanged; ip = IP; port = Port; doConnect = true; @@ -109,10 +112,12 @@ namespace ClientServerLib serverEndPoint = new IPEndPoint(IPAddress.Parse(ip), port); connection.TcpClient.Connect(serverEndPoint); connected = true; + RaiseOnConnectionChanged(); } catch { connected = false; + RaiseOnConnectionChanged(); for (int i = 0; i < 500; i++) { if (doConnect) @@ -135,6 +140,7 @@ namespace ClientServerLib } connected = false; + RaiseOnConnectionChanged(); } if (doConnect && connected) @@ -146,6 +152,7 @@ namespace ClientServerLib catch { connected = false; + RaiseOnConnectionChanged(); } } @@ -253,5 +260,17 @@ namespace ClientServerLib return response; } + + private void RaiseOnConnectionChanged() + { + if (onConnectionChanged == null) + return; + + try + { + onConnectionChanged(connected); + } + catch {} + } } } diff --git a/ClientServerLib/ClientServerLib/Structs.cs b/ClientServerLib/ClientServerLib/Structs.cs index fa22e2a2..d3f3c41f 100644 --- a/ClientServerLib/ClientServerLib/Structs.cs +++ b/ClientServerLib/ClientServerLib/Structs.cs @@ -7,6 +7,7 @@ namespace ClientServerLib { public delegate void ResponseCallback(byte[] Response); public delegate byte[] HandleRequest(int ConnectionID, byte[] Message); + public delegate void OnConnectionChanged(bool Connected); public struct SRequest { diff --git a/ClientServerLib/ClientTest/ClientTest.Designer.cs b/ClientServerLib/ClientTest/ClientTest.Designer.cs new file mode 100644 index 00000000..a0dc68e9 --- /dev/null +++ b/ClientServerLib/ClientTest/ClientTest.Designer.cs @@ -0,0 +1,204 @@ +namespace ClientTest +{ + partial class ClientTest + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Windows Form-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.lbServerIP = new System.Windows.Forms.Label(); + this.lbPort = new System.Windows.Forms.Label(); + this.tbServerIP = new System.Windows.Forms.TextBox(); + this.tbPort = new System.Windows.Forms.TextBox(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.lbConnectionStatus = new System.Windows.Forms.ToolStripStatusLabel(); + this.lbConnectionStatusText = new System.Windows.Forms.ToolStripStatusLabel(); + this.btConnect = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.tbDataSending = new System.Windows.Forms.TextBox(); + this.lbDateSending = new System.Windows.Forms.Label(); + this.lbDataReceiving = new System.Windows.Forms.Label(); + this.tbDataReceiving = new System.Windows.Forms.TextBox(); + this.statusStrip1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // lbServerIP + // + this.lbServerIP.AutoSize = true; + this.lbServerIP.Location = new System.Drawing.Point(3, 0); + this.lbServerIP.Name = "lbServerIP"; + this.lbServerIP.Size = new System.Drawing.Size(54, 13); + this.lbServerIP.TabIndex = 0; + this.lbServerIP.Text = "Server IP:"; + // + // lbPort + // + this.lbPort.AutoSize = true; + this.lbPort.Location = new System.Drawing.Point(3, 26); + this.lbPort.Name = "lbPort"; + this.lbPort.Size = new System.Drawing.Size(29, 13); + this.lbPort.TabIndex = 1; + this.lbPort.Text = "Port:"; + // + // tbServerIP + // + this.tbServerIP.Location = new System.Drawing.Point(85, -3); + this.tbServerIP.Name = "tbServerIP"; + this.tbServerIP.Size = new System.Drawing.Size(86, 20); + this.tbServerIP.TabIndex = 2; + this.tbServerIP.Text = "127.0.0.1"; + // + // tbPort + // + this.tbPort.Location = new System.Drawing.Point(85, 23); + this.tbPort.Name = "tbPort"; + this.tbPort.Size = new System.Drawing.Size(86, 20); + this.tbPort.TabIndex = 3; + this.tbPort.Text = "3000"; + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.lbConnectionStatus, + this.lbConnectionStatusText}); + this.statusStrip1.Location = new System.Drawing.Point(0, 528); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(1008, 22); + this.statusStrip1.TabIndex = 4; + this.statusStrip1.Text = "statusStrip1"; + // + // lbConnectionStatus + // + this.lbConnectionStatus.Name = "lbConnectionStatus"; + this.lbConnectionStatus.Size = new System.Drawing.Size(107, 17); + this.lbConnectionStatus.Text = "Connection Status:"; + // + // lbConnectionStatusText + // + this.lbConnectionStatusText.Name = "lbConnectionStatusText"; + this.lbConnectionStatusText.Size = new System.Drawing.Size(79, 17); + this.lbConnectionStatusText.Text = "Disconnected"; + // + // btConnect + // + this.btConnect.Location = new System.Drawing.Point(6, 49); + this.btConnect.Name = "btConnect"; + this.btConnect.Size = new System.Drawing.Size(165, 23); + this.btConnect.TabIndex = 5; + this.btConnect.Text = "Connect"; + this.btConnect.UseVisualStyleBackColor = true; + this.btConnect.Click += new System.EventHandler(this.btConnect_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.lbServerIP); + this.panel1.Controls.Add(this.btConnect); + this.panel1.Controls.Add(this.tbServerIP); + this.panel1.Controls.Add(this.tbPort); + this.panel1.Controls.Add(this.lbPort); + this.panel1.Location = new System.Drawing.Point(822, 12); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(174, 513); + this.panel1.TabIndex = 6; + // + // tbDataSending + // + this.tbDataSending.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDataSending.Location = new System.Drawing.Point(12, 25); + this.tbDataSending.Multiline = true; + this.tbDataSending.Name = "tbDataSending"; + this.tbDataSending.Size = new System.Drawing.Size(804, 120); + this.tbDataSending.TabIndex = 7; + // + // lbDateSending + // + this.lbDateSending.AutoSize = true; + this.lbDateSending.Location = new System.Drawing.Point(12, 9); + this.lbDateSending.Name = "lbDateSending"; + this.lbDateSending.Size = new System.Drawing.Size(75, 13); + this.lbDateSending.TabIndex = 6; + this.lbDateSending.Text = "Data Sending:"; + // + // lbDataReceiving + // + this.lbDataReceiving.AutoSize = true; + this.lbDataReceiving.Location = new System.Drawing.Point(12, 197); + this.lbDataReceiving.Name = "lbDataReceiving"; + this.lbDataReceiving.Size = new System.Drawing.Size(84, 13); + this.lbDataReceiving.TabIndex = 8; + this.lbDataReceiving.Text = "Data Receiving:"; + // + // tbDataReceiving + // + this.tbDataReceiving.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDataReceiving.Location = new System.Drawing.Point(12, 213); + this.tbDataReceiving.Multiline = true; + this.tbDataReceiving.Name = "tbDataReceiving"; + this.tbDataReceiving.Size = new System.Drawing.Size(804, 120); + this.tbDataReceiving.TabIndex = 9; + // + // ClientTest + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1008, 550); + this.Controls.Add(this.tbDataReceiving); + this.Controls.Add(this.lbDataReceiving); + this.Controls.Add(this.lbDateSending); + this.Controls.Add(this.tbDataSending); + this.Controls.Add(this.panel1); + this.Controls.Add(this.statusStrip1); + this.Name = "ClientTest"; + this.Text = "ClientTest"; + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lbServerIP; + private System.Windows.Forms.Label lbPort; + private System.Windows.Forms.TextBox tbServerIP; + private System.Windows.Forms.TextBox tbPort; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripStatusLabel lbConnectionStatus; + private System.Windows.Forms.ToolStripStatusLabel lbConnectionStatusText; + private System.Windows.Forms.Button btConnect; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.TextBox tbDataSending; + private System.Windows.Forms.Label lbDateSending; + private System.Windows.Forms.Label lbDataReceiving; + private System.Windows.Forms.TextBox tbDataReceiving; + } +} + diff --git a/ClientServerLib/ClientTest/ClientTest.cs b/ClientServerLib/ClientTest/ClientTest.cs new file mode 100644 index 00000000..4fc0f9ba --- /dev/null +++ b/ClientServerLib/ClientTest/ClientTest.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Net; +using System.Text; +using System.Windows.Forms; + +using ClientServerLib; + +namespace ClientTest +{ + public partial class ClientTest : Form + { + CClient client; + + public ClientTest() + { + client = new CClient(); + + InitializeComponent(); + } + + protected override void OnClosing(CancelEventArgs e) + { + client.Close(); + base.OnClosing(e); + } + + private void btConnect_Click(object sender, EventArgs e) + { + if (!client.Connected) + Connect(); + else + Disconnect(); + } + + private void Connect() + { + int port = 3000; + if (!int.TryParse(tbPort.Text, out port)) + { + MessageBox.Show("Error parsing port number", "Port Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + IPAddress ip; + if (!IPAddress.TryParse(tbServerIP.Text, out ip)) + { + MessageBox.Show("Error parsing ip address", "IP Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + lbConnectionStatusText.Text = "Connecting..."; + client.Connect(tbServerIP.Text, port, OnConnectionChanged); + } + + private void Disconnect() + { + client.Disconnect(); + } + + private void OnConnectionChanged(bool Connected) + { + if (Connected) + lbConnectionStatusText.Text = "Connected"; + else + { + client.Disconnect(); + lbConnectionStatusText.Text = "Disconnected"; + } + } + } +} diff --git a/ClientServerLib/ClientTest/ClientTest.csproj b/ClientServerLib/ClientTest/ClientTest.csproj new file mode 100644 index 00000000..a86fe023 --- /dev/null +++ b/ClientServerLib/ClientTest/ClientTest.csproj @@ -0,0 +1,93 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {48A825C6-728F-4EBF-B98E-3D4665B3BC9E} + WinExe + Properties + ClientTest + ClientTest + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + Form + + + ClientTest.cs + + + + + ClientTest.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {EC5167E4-CCFB-4CEE-987C-CF816F1062A3} + ClientServerLib + + + + + \ No newline at end of file diff --git a/ClientServerLib/ClientTest/ClientTest.resx b/ClientServerLib/ClientTest/ClientTest.resx new file mode 100644 index 00000000..174ebc72 --- /dev/null +++ b/ClientServerLib/ClientTest/ClientTest.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/ClientServerLib/ClientTest/Program.cs b/ClientServerLib/ClientTest/Program.cs new file mode 100644 index 00000000..f93a6318 --- /dev/null +++ b/ClientServerLib/ClientTest/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace ClientTest +{ + static class Program + { + /// + /// Der Haupteinstiegspunkt für die Anwendung. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new ClientTest()); + } + } +} diff --git a/ClientServerLib/ClientTest/Properties/AssemblyInfo.cs b/ClientServerLib/ClientTest/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d5de0107 --- /dev/null +++ b/ClientServerLib/ClientTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die mit einer Assembly verknüpft sind. +[assembly: AssemblyTitle("ClientTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ClientTest")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar +// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von +// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("0bde3ff1-7eb7-4b60-9813-32ff42c0ceff")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern +// übernehmen, indem Sie "*" eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ClientServerLib/ClientTest/Properties/Resources.Designer.cs b/ClientServerLib/ClientTest/Properties/Resources.Designer.cs new file mode 100644 index 00000000..af9fcd25 --- /dev/null +++ b/ClientServerLib/ClientTest/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.18034 +// +// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn +// der Code neu generiert wird. +// +//------------------------------------------------------------------------------ + +namespace ClientTest.Properties +{ + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse + // über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu. + [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() + { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [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("ClientTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden. + /// + [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/ClientServerLib/ClientTest/Properties/Resources.resx b/ClientServerLib/ClientTest/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/ClientServerLib/ClientTest/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/ClientServerLib/ClientTest/Properties/Settings.Designer.cs b/ClientServerLib/ClientTest/Properties/Settings.Designer.cs new file mode 100644 index 00000000..19867065 --- /dev/null +++ b/ClientServerLib/ClientTest/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18034 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ClientTest.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.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; + } + } + } +} diff --git a/ClientServerLib/ClientTest/Properties/Settings.settings b/ClientServerLib/ClientTest/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/ClientServerLib/ClientTest/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ClientServerLib/ClientTest/bin/Debug/ClientTest.exe b/ClientServerLib/ClientTest/bin/Debug/ClientTest.exe new file mode 100644 index 00000000..f1ed2a57 Binary files /dev/null and b/ClientServerLib/ClientTest/bin/Debug/ClientTest.exe differ diff --git a/ClientServerLib/ClientTest/bin/Debug/ClientTest.vshost.exe b/ClientServerLib/ClientTest/bin/Debug/ClientTest.vshost.exe new file mode 100644 index 00000000..bb84a51a Binary files /dev/null and b/ClientServerLib/ClientTest/bin/Debug/ClientTest.vshost.exe differ