Compare commits

...

17 Commits

Author SHA1 Message Date
7153d0fd09 Fixed log of getCurrentUser command on server 2025-10-02 09:27:53 +02:00
de0e87ffd8 Added server version handling from project resources 2025-10-02 09:21:14 +02:00
70b818353d Added final commands 2025-10-02 09:14:55 +02:00
32c28b76c0 Added client version to form toolstrip 2025-10-02 09:08:06 +02:00
Andrea
903e0b934d Fixed thread not closing issue 2025-10-02 09:00:35 +02:00
Andrea
9a005c15f2 Fixed client form size issues 2025-10-02 08:55:57 +02:00
Andrea
c52c9266af Client log horizontal scrollbar 2025-10-02 08:54:27 +02:00
Andrea
036ea0ed6a Added client commands backend 2025-10-02 08:53:03 +02:00
Andrea
cb74dd00d3 semifix 2025-10-02 08:51:48 +02:00
Andrea
f97f1a7bcb Command support improvements 2025-10-02 08:50:08 +02:00
Andrea
8bea85a5b1 commands overhaul 2025-10-02 08:34:35 +02:00
b0c4dba54b Implementing server support for date and time commands 2025-10-01 08:55:45 +02:00
cf8dc440dd Server assembly info changes 2025-10-01 08:40:59 +02:00
c1eb11a0a1 Added client mainform Italian translation 2025-10-01 08:38:02 +02:00
eb35d2bf6e Server log horizontal scrollbar not showing fixed 2025-10-01 08:29:19 +02:00
e9db84f50c Assigned time and date commands to client buttons 2025-10-01 08:25:18 +02:00
2eabe7f2b9 Fixed server tray name mismatch 2025-10-01 08:21:41 +02:00
14 changed files with 627 additions and 112 deletions

View File

@@ -5,6 +5,7 @@ using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SamaPager_Client
{
@@ -41,6 +42,23 @@ namespace SamaPager_Client
UdpStack.Send(msgData, msgData.Length, serverEndPoint);
}
internal string SendCommand(string command)
{
byte[] msgData = Encoding.UTF8.GetBytes(command);
UdpStack.Send(msgData, msgData.Length, serverEndPoint);
try
{
UdpStack.Client.ReceiveTimeout = 5000;
IPEndPoint receiveEndPoint = serverEndPoint;
byte[] receivedBytes = UdpStack.Receive(ref receiveEndPoint);
return $"Server replied: {Encoding.UTF8.GetString(receivedBytes)}";
}
catch(Exception ex)
{
return $"ERROR: {ex.Message}";
}
}
internal void KillClient()
{
this.UdpStack.Close();

View File

@@ -29,7 +29,10 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.kryptonPanel1 = new Krypton.Toolkit.KryptonPanel();
this.cmdLst = new Krypton.Toolkit.KryptonComboBox();
this.logLst = new Krypton.Toolkit.KryptonListBox();
this.kryptonPictureBox1 = new Krypton.Toolkit.KryptonPictureBox();
this.sendBtn = new Krypton.Toolkit.KryptonButton();
this.kryptonStatusStrip1 = new Krypton.Toolkit.KryptonStatusStrip();
@@ -40,11 +43,10 @@
this.restartUDPClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.messageTxt = new Krypton.Toolkit.KryptonTextBox();
this.kryptonManager2 = new Krypton.Toolkit.KryptonManager(this.components);
this.kryptonListBox1 = new Krypton.Toolkit.KryptonListBox();
this.getTimeBtn = new Krypton.Toolkit.KryptonButton();
this.getDateBtn = new Krypton.Toolkit.KryptonButton();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
((System.ComponentModel.ISupportInitialize)(this.kryptonPanel1)).BeginInit();
this.kryptonPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.cmdLst)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.kryptonPictureBox1)).BeginInit();
this.kryptonStatusStrip1.SuspendLayout();
this.menuStrip1.SuspendLayout();
@@ -52,69 +54,69 @@
//
// kryptonPanel1
//
this.kryptonPanel1.Controls.Add(this.getDateBtn);
this.kryptonPanel1.Controls.Add(this.getTimeBtn);
this.kryptonPanel1.Controls.Add(this.kryptonListBox1);
this.kryptonPanel1.Controls.Add(this.cmdLst);
this.kryptonPanel1.Controls.Add(this.logLst);
this.kryptonPanel1.Controls.Add(this.kryptonPictureBox1);
this.kryptonPanel1.Controls.Add(this.sendBtn);
this.kryptonPanel1.Controls.Add(this.kryptonStatusStrip1);
this.kryptonPanel1.Controls.Add(this.menuStrip1);
this.kryptonPanel1.Controls.Add(this.messageTxt);
this.kryptonPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.kryptonPanel1.Location = new System.Drawing.Point(0, 0);
resources.ApplyResources(this.kryptonPanel1, "kryptonPanel1");
this.kryptonPanel1.Name = "kryptonPanel1";
this.kryptonPanel1.Size = new System.Drawing.Size(644, 349);
this.kryptonPanel1.TabIndex = 0;
//
// cmdLst
//
this.cmdLst.DropDownWidth = 318;
this.cmdLst.Items.AddRange(new object[] {
resources.GetString("cmdLst.Items"),
resources.GetString("cmdLst.Items1"),
resources.GetString("cmdLst.Items2")});
resources.ApplyResources(this.cmdLst, "cmdLst");
this.cmdLst.Name = "cmdLst";
this.cmdLst.StateCommon.ComboBox.Content.TextH = Krypton.Toolkit.PaletteRelativeAlign.Near;
this.cmdLst.SelectedIndexChanged += new System.EventHandler(this.cmdLst_SelectedIndexChanged);
//
// logLst
//
resources.ApplyResources(this.logLst, "logLst");
this.logLst.Name = "logLst";
//
// kryptonPictureBox1
//
this.kryptonPictureBox1.Image = global::SamaPager_Client.Properties.Resources.shalom;
this.kryptonPictureBox1.Location = new System.Drawing.Point(349, 134);
resources.ApplyResources(this.kryptonPictureBox1, "kryptonPictureBox1");
this.kryptonPictureBox1.Name = "kryptonPictureBox1";
this.kryptonPictureBox1.Size = new System.Drawing.Size(278, 181);
this.kryptonPictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.kryptonPictureBox1.TabIndex = 3;
this.kryptonPictureBox1.TabStop = false;
//
// sendBtn
//
this.sendBtn.Location = new System.Drawing.Point(250, 248);
resources.ApplyResources(this.sendBtn, "sendBtn");
this.sendBtn.Name = "sendBtn";
this.sendBtn.Size = new System.Drawing.Size(80, 67);
this.sendBtn.TabIndex = 2;
this.sendBtn.Values.DropDownArrowColor = System.Drawing.Color.Empty;
this.sendBtn.Values.Text = "SEND";
this.sendBtn.Values.Text = resources.GetString("sendBtn.Values.Text");
this.sendBtn.Click += new System.EventHandler(this.sendBtn_Click);
//
// kryptonStatusStrip1
//
this.kryptonStatusStrip1.Font = new System.Drawing.Font("Segoe UI", 9F);
resources.ApplyResources(this.kryptonStatusStrip1, "kryptonStatusStrip1");
this.kryptonStatusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.statusTxt});
this.kryptonStatusStrip1.Location = new System.Drawing.Point(0, 327);
this.statusTxt,
this.toolStripStatusLabel1});
this.kryptonStatusStrip1.Name = "kryptonStatusStrip1";
this.kryptonStatusStrip1.ProgressBars = null;
this.kryptonStatusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode;
this.kryptonStatusStrip1.Size = new System.Drawing.Size(644, 22);
this.kryptonStatusStrip1.TabIndex = 1;
this.kryptonStatusStrip1.Text = "kryptonStatusStrip1";
//
// statusTxt
//
this.statusTxt.Name = "statusTxt";
this.statusTxt.Size = new System.Drawing.Size(68, 17);
this.statusTxt.Text = "STATUS: Off";
resources.ApplyResources(this.statusTxt, "statusTxt");
//
// menuStrip1
//
this.menuStrip1.Font = new System.Drawing.Font("Segoe UI", 9F);
resources.ApplyResources(this.menuStrip1, "menuStrip1");
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(644, 24);
this.menuStrip1.TabIndex = 4;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
@@ -122,76 +124,49 @@
this.changeDestinationAddressToolStripMenuItem,
this.restartUDPClientToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(64, 20);
this.fileToolStripMenuItem.Text = "Network";
resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
//
// changeDestinationAddressToolStripMenuItem
//
this.changeDestinationAddressToolStripMenuItem.Name = "changeDestinationAddressToolStripMenuItem";
this.changeDestinationAddressToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.changeDestinationAddressToolStripMenuItem.Text = "Change destination address";
resources.ApplyResources(this.changeDestinationAddressToolStripMenuItem, "changeDestinationAddressToolStripMenuItem");
this.changeDestinationAddressToolStripMenuItem.Click += new System.EventHandler(this.changeDestinationAddressToolStripMenuItem_Click);
//
// restartUDPClientToolStripMenuItem
//
this.restartUDPClientToolStripMenuItem.Name = "restartUDPClientToolStripMenuItem";
this.restartUDPClientToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.restartUDPClientToolStripMenuItem.Text = "Restart UDP Client";
resources.ApplyResources(this.restartUDPClientToolStripMenuItem, "restartUDPClientToolStripMenuItem");
this.restartUDPClientToolStripMenuItem.Click += new System.EventHandler(this.restartUDPClientToolStripMenuItem_Click);
//
// messageTxt
//
this.messageTxt.Location = new System.Drawing.Point(12, 248);
this.messageTxt.Multiline = true;
resources.ApplyResources(this.messageTxt, "messageTxt");
this.messageTxt.Name = "messageTxt";
this.messageTxt.Size = new System.Drawing.Size(232, 67);
this.messageTxt.TabIndex = 0;
//
// kryptonManager2
//
this.kryptonManager2.GlobalPaletteMode = Krypton.Toolkit.PaletteMode.Office2010Silver;
//
// kryptonListBox1
// toolStripStatusLabel1
//
this.kryptonListBox1.Location = new System.Drawing.Point(12, 27);
this.kryptonListBox1.Name = "kryptonListBox1";
this.kryptonListBox1.Size = new System.Drawing.Size(318, 215);
this.kryptonListBox1.TabIndex = 5;
//
// getTimeBtn
//
this.getTimeBtn.Location = new System.Drawing.Point(349, 27);
this.getTimeBtn.Name = "getTimeBtn";
this.getTimeBtn.Size = new System.Drawing.Size(278, 45);
this.getTimeBtn.TabIndex = 6;
this.getTimeBtn.Values.DropDownArrowColor = System.Drawing.Color.Empty;
this.getTimeBtn.Values.Text = "Get Time";
//
// getDateBtn
//
this.getDateBtn.Location = new System.Drawing.Point(349, 78);
this.getDateBtn.Name = "getDateBtn";
this.getDateBtn.Size = new System.Drawing.Size(278, 43);
this.getDateBtn.TabIndex = 7;
this.getDateBtn.Values.DropDownArrowColor = System.Drawing.Color.Empty;
this.getDateBtn.Values.Text = "Get Date";
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
resources.ApplyResources(this.toolStripStatusLabel1, "toolStripStatusLabel1");
this.toolStripStatusLabel1.Spring = true;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(644, 349);
this.Controls.Add(this.kryptonPanel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MainMenuStrip = this.menuStrip1;
this.MaximizeBox = false;
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "SamaPager Client";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.kryptonPanel1)).EndInit();
this.kryptonPanel1.ResumeLayout(false);
this.kryptonPanel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.cmdLst)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.kryptonPictureBox1)).EndInit();
this.kryptonStatusStrip1.ResumeLayout(false);
this.kryptonStatusStrip1.PerformLayout();
@@ -214,9 +189,9 @@
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem changeDestinationAddressToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem restartUDPClientToolStripMenuItem;
private Krypton.Toolkit.KryptonButton getDateBtn;
private Krypton.Toolkit.KryptonButton getTimeBtn;
private Krypton.Toolkit.KryptonListBox kryptonListBox1;
private Krypton.Toolkit.KryptonListBox logLst;
private Krypton.Toolkit.KryptonComboBox cmdLst;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
}
}

View File

@@ -55,9 +55,16 @@ namespace SamaPager_Client
else
{
pageClient.SendMessage(messageTxt.Text);
logLst.Items.Add($"Sent: {messageTxt.Text}");
messageTxt.Text = String.Empty;
}
}
private void cmdLst_SelectedIndexChanged(object sender, EventArgs e)
{
logLst.Items.Add(pageClient.SendCommand(cmdLst.Text));
cmdLst.Text = String.Empty;
}
}
}

View File

@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="sendBtn.Values.Text" xml:space="preserve">
<value>INVIA</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="kryptonStatusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 555</value>
</data>
<data name="kryptonStatusStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>342, 22</value>
</data>
<data name="menuStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>342, 24</value>
</data>
<data name="kryptonPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>342, 577</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>42, 20</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>Rete</value>
</data>
<data name="changeDestinationAddressToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>210, 22</value>
</data>
<data name="changeDestinationAddressToolStripMenuItem.Text" xml:space="preserve">
<value>Cambia IP di destinazione</value>
</data>
<data name="restartUDPClientToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>210, 22</value>
</data>
<data name="restartUDPClientToolStripMenuItem.Text" xml:space="preserve">
<value>Riavvia il socket UDP</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>342, 577</value>
</data>
</root>

View File

@@ -117,13 +117,316 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="cmdLst.Items" xml:space="preserve">
<value>!getDateTime</value>
</data>
<data name="cmdLst.Items1" xml:space="preserve">
<value>!getCurrentDir</value>
</data>
<data name="cmdLst.Items2" xml:space="preserve">
<value>!getCurrentUser</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="cmdLst.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 524</value>
</data>
<data name="cmdLst.Size" type="System.Drawing.Size, System.Drawing">
<value>318, 22</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cmdLst.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="&gt;&gt;cmdLst.Name" xml:space="preserve">
<value>cmdLst</value>
</data>
<data name="&gt;&gt;cmdLst.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonComboBox, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
<data name="&gt;&gt;cmdLst.Parent" xml:space="preserve">
<value>kryptonPanel1</value>
</data>
<data name="&gt;&gt;cmdLst.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="logLst.HorizontalExtent" type="System.Int32, mscorlib">
<value>4000</value>
</data>
<data name="logLst.HorizontalScrollbar" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="logLst.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 230</value>
</data>
<data name="logLst.Size" type="System.Drawing.Size, System.Drawing">
<value>318, 215</value>
</data>
<data name="logLst.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;logLst.Name" xml:space="preserve">
<value>logLst</value>
</data>
<data name="&gt;&gt;logLst.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonListBox, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
<data name="&gt;&gt;logLst.Parent" xml:space="preserve">
<value>kryptonPanel1</value>
</data>
<data name="&gt;&gt;logLst.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="kryptonPictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="kryptonPictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>31, 38</value>
</data>
<data name="kryptonPictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>278, 181</value>
</data>
<data name="kryptonPictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="kryptonPictureBox1.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="&gt;&gt;kryptonPictureBox1.Name" xml:space="preserve">
<value>kryptonPictureBox1</value>
</data>
<data name="&gt;&gt;kryptonPictureBox1.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonPictureBox, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
<data name="&gt;&gt;kryptonPictureBox1.Parent" xml:space="preserve">
<value>kryptonPanel1</value>
</data>
<data name="&gt;&gt;kryptonPictureBox1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="sendBtn.Location" type="System.Drawing.Point, System.Drawing">
<value>250, 451</value>
</data>
<data name="sendBtn.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 67</value>
</data>
<data name="sendBtn.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="sendBtn.Values.Text" xml:space="preserve">
<value>SEND</value>
</data>
<data name="&gt;&gt;sendBtn.Name" xml:space="preserve">
<value>sendBtn</value>
</data>
<data name="&gt;&gt;sendBtn.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonButton, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
<data name="&gt;&gt;sendBtn.Parent" xml:space="preserve">
<value>kryptonPanel1</value>
</data>
<data name="&gt;&gt;sendBtn.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<metadata name="kryptonStatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>165, 17</value>
</metadata>
<data name="kryptonStatusStrip1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="statusTxt.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 17</value>
</data>
<data name="statusTxt.Text" xml:space="preserve">
<value>STATUS: Off</value>
</data>
<data name="toolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>259, 17</value>
</data>
<data name="toolStripStatusLabel1.Text" xml:space="preserve">
<value>v1.1</value>
</data>
<data name="toolStripStatusLabel1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleRight</value>
</data>
<data name="kryptonStatusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 556</value>
</data>
<data name="kryptonStatusStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>344, 22</value>
</data>
<data name="kryptonStatusStrip1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="kryptonStatusStrip1.Text" xml:space="preserve">
<value>kryptonStatusStrip1</value>
</data>
<data name="&gt;&gt;kryptonStatusStrip1.Name" xml:space="preserve">
<value>kryptonStatusStrip1</value>
</data>
<data name="&gt;&gt;kryptonStatusStrip1.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonStatusStrip, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
<data name="&gt;&gt;kryptonStatusStrip1.Parent" xml:space="preserve">
<value>kryptonPanel1</value>
</data>
<data name="&gt;&gt;kryptonStatusStrip1.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>322, 17</value>
</metadata>
<data name="menuStrip1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="menuStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="menuStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>344, 24</value>
</data>
<data name="menuStrip1.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="menuStrip1.Text" xml:space="preserve">
<value>menuStrip1</value>
</data>
<data name="&gt;&gt;menuStrip1.Name" xml:space="preserve">
<value>menuStrip1</value>
</data>
<data name="&gt;&gt;menuStrip1.Type" xml:space="preserve">
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuStrip1.Parent" xml:space="preserve">
<value>kryptonPanel1</value>
</data>
<data name="&gt;&gt;menuStrip1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="messageTxt.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 451</value>
</data>
<data name="messageTxt.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="messageTxt.Size" type="System.Drawing.Size, System.Drawing">
<value>232, 67</value>
</data>
<data name="messageTxt.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;messageTxt.Name" xml:space="preserve">
<value>messageTxt</value>
</data>
<data name="&gt;&gt;messageTxt.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonTextBox, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
<data name="&gt;&gt;messageTxt.Parent" xml:space="preserve">
<value>kryptonPanel1</value>
</data>
<data name="&gt;&gt;messageTxt.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="kryptonPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="kryptonPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="kryptonPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>344, 578</value>
</data>
<data name="kryptonPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;kryptonPanel1.Name" xml:space="preserve">
<value>kryptonPanel1</value>
</data>
<data name="&gt;&gt;kryptonPanel1.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonPanel, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
<data name="&gt;&gt;kryptonPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;kryptonPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>64, 20</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>Network</value>
</data>
<data name="changeDestinationAddressToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="changeDestinationAddressToolStripMenuItem.Text" xml:space="preserve">
<value>Change destination address</value>
</data>
<data name="restartUDPClientToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="restartUDPClientToolStripMenuItem.Text" xml:space="preserve">
<value>Restart UDP Client</value>
</data>
<metadata name="kryptonManager2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>344, 578</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>SamaPager Client</value>
</data>
<data name="&gt;&gt;statusTxt.Name" xml:space="preserve">
<value>statusTxt</value>
</data>
<data name="&gt;&gt;statusTxt.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;fileToolStripMenuItem.Name" xml:space="preserve">
<value>fileToolStripMenuItem</value>
</data>
<data name="&gt;&gt;fileToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;changeDestinationAddressToolStripMenuItem.Name" xml:space="preserve">
<value>changeDestinationAddressToolStripMenuItem</value>
</data>
<data name="&gt;&gt;changeDestinationAddressToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;restartUDPClientToolStripMenuItem.Name" xml:space="preserve">
<value>restartUDPClientToolStripMenuItem</value>
</data>
<data name="&gt;&gt;restartUDPClientToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;kryptonManager2.Name" xml:space="preserve">
<value>kryptonManager2</value>
</data>
<data name="&gt;&gt;kryptonManager2.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonManager, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
<data name="&gt;&gt;toolStripStatusLabel1.Name" xml:space="preserve">
<value>toolStripStatusLabel1</value>
</data>
<data name="&gt;&gt;toolStripStatusLabel1.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>Form1</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>Krypton.Toolkit.KryptonForm, Krypton.Toolkit, Version=95.25.8.235, Culture=neutral, PublicKeyToken=a87e673e9ecb6e8e</value>
</data>
</root>

View File

@@ -59,8 +59,13 @@
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Form1.it-IT.resx">
<DependentUpon>Form1.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>

View File

@@ -30,13 +30,13 @@
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm));
this.kryptonPanel1 = new Krypton.Toolkit.KryptonPanel();
this.gitLnk = new Krypton.Toolkit.KryptonLinkLabel();
this.versionLbl = new Krypton.Toolkit.KryptonLabel();
this.kryptonLabel3 = new Krypton.Toolkit.KryptonLabel();
this.storkUrl = new Krypton.Toolkit.KryptonLinkLabel();
this.kryptonLabel2 = new Krypton.Toolkit.KryptonLabel();
this.kryptonLabel1 = new Krypton.Toolkit.KryptonLabel();
this.kryptonPictureBox1 = new Krypton.Toolkit.KryptonPictureBox();
this.kryptonLabel4 = new Krypton.Toolkit.KryptonLabel();
this.gitLnk = new Krypton.Toolkit.KryptonLinkLabel();
((System.ComponentModel.ISupportInitialize)(this.kryptonPanel1)).BeginInit();
this.kryptonPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.kryptonPictureBox1)).BeginInit();
@@ -45,7 +45,7 @@
// kryptonPanel1
//
this.kryptonPanel1.Controls.Add(this.gitLnk);
this.kryptonPanel1.Controls.Add(this.kryptonLabel4);
this.kryptonPanel1.Controls.Add(this.versionLbl);
this.kryptonPanel1.Controls.Add(this.kryptonLabel3);
this.kryptonPanel1.Controls.Add(this.storkUrl);
this.kryptonPanel1.Controls.Add(this.kryptonLabel2);
@@ -54,9 +54,27 @@
this.kryptonPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.kryptonPanel1.Location = new System.Drawing.Point(0, 0);
this.kryptonPanel1.Name = "kryptonPanel1";
this.kryptonPanel1.Size = new System.Drawing.Size(499, 526);
this.kryptonPanel1.Size = new System.Drawing.Size(496, 520);
this.kryptonPanel1.TabIndex = 0;
//
// gitLnk
//
this.gitLnk.Location = new System.Drawing.Point(411, 494);
this.gitLnk.Name = "gitLnk";
this.gitLnk.Size = new System.Drawing.Size(73, 20);
this.gitLnk.TabIndex = 6;
this.gitLnk.Values.Text = "View on Git";
this.gitLnk.LinkClicked += new System.EventHandler(this.gitLnk_LinkClicked);
//
// versionLbl
//
this.versionLbl.LabelStyle = Krypton.Toolkit.LabelStyle.BoldPanel;
this.versionLbl.Location = new System.Drawing.Point(12, 345);
this.versionLbl.Name = "versionLbl";
this.versionLbl.Size = new System.Drawing.Size(62, 20);
this.versionLbl.TabIndex = 5;
this.versionLbl.Values.Text = "[version]";
//
// kryptonLabel3
//
this.kryptonLabel3.Location = new System.Drawing.Point(12, 436);
@@ -102,29 +120,11 @@
this.kryptonPictureBox1.TabIndex = 0;
this.kryptonPictureBox1.TabStop = false;
//
// kryptonLabel4
//
this.kryptonLabel4.LabelStyle = Krypton.Toolkit.LabelStyle.BoldPanel;
this.kryptonLabel4.Location = new System.Drawing.Point(12, 345);
this.kryptonLabel4.Name = "kryptonLabel4";
this.kryptonLabel4.Size = new System.Drawing.Size(114, 20);
this.kryptonLabel4.TabIndex = 5;
this.kryptonLabel4.Values.Text = "v1.1 (Castagnetti)";
//
// gitLnk
//
this.gitLnk.Location = new System.Drawing.Point(411, 494);
this.gitLnk.Name = "gitLnk";
this.gitLnk.Size = new System.Drawing.Size(73, 20);
this.gitLnk.TabIndex = 6;
this.gitLnk.Values.Text = "View on Git";
this.gitLnk.LinkClicked += new System.EventHandler(this.gitLnk_LinkClicked);
//
// AboutForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(499, 526);
this.ClientSize = new System.Drawing.Size(496, 520);
this.Controls.Add(this.kryptonPanel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
@@ -132,6 +132,7 @@
this.Name = "AboutForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "About SamaPager Server";
this.Load += new System.EventHandler(this.AboutForm_Load);
((System.ComponentModel.ISupportInitialize)(this.kryptonPanel1)).EndInit();
this.kryptonPanel1.ResumeLayout(false);
this.kryptonPanel1.PerformLayout();
@@ -149,6 +150,6 @@
private Krypton.Toolkit.KryptonLabel kryptonLabel3;
private Krypton.Toolkit.KryptonLinkLabel storkUrl;
private Krypton.Toolkit.KryptonLinkLabel gitLnk;
private Krypton.Toolkit.KryptonLabel kryptonLabel4;
private Krypton.Toolkit.KryptonLabel versionLbl;
}
}

View File

@@ -1,4 +1,5 @@
using System;
using SamaPager_Server.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
@@ -27,5 +28,10 @@ namespace SamaPager_Server
{
Process.Start("https://git.fiorencis.eu/AndreStork/SamaPager");
}
private void AboutForm_Load(object sender, EventArgs e)
{
versionLbl.Text = $"v.{Resources.currentVersion} ({Resources.versionCodename})";
}
}
}

View File

@@ -72,15 +72,16 @@
this.kryptonPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.kryptonPanel1.Location = new System.Drawing.Point(0, 0);
this.kryptonPanel1.Name = "kryptonPanel1";
this.kryptonPanel1.Size = new System.Drawing.Size(423, 377);
this.kryptonPanel1.Size = new System.Drawing.Size(430, 384);
this.kryptonPanel1.TabIndex = 0;
//
// logList
//
this.logList.HorizontalExtent = 4000;
this.logList.HorizontalScrollbar = true;
this.logList.Location = new System.Drawing.Point(12, 27);
this.logList.Name = "logList";
this.logList.Size = new System.Drawing.Size(399, 322);
this.logList.Size = new System.Drawing.Size(402, 322);
this.logList.TabIndex = 4;
//
// kryptonStatusStrip1
@@ -88,18 +89,18 @@
this.kryptonStatusStrip1.Font = new System.Drawing.Font("Segoe UI", 9F);
this.kryptonStatusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.statusLabel});
this.kryptonStatusStrip1.Location = new System.Drawing.Point(0, 355);
this.kryptonStatusStrip1.Location = new System.Drawing.Point(0, 362);
this.kryptonStatusStrip1.Name = "kryptonStatusStrip1";
this.kryptonStatusStrip1.ProgressBars = null;
this.kryptonStatusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode;
this.kryptonStatusStrip1.Size = new System.Drawing.Size(423, 22);
this.kryptonStatusStrip1.Size = new System.Drawing.Size(430, 22);
this.kryptonStatusStrip1.TabIndex = 3;
this.kryptonStatusStrip1.Text = "kryptonStatusStrip1";
//
// statusLabel
//
this.statusLabel.Name = "statusLabel";
this.statusLabel.Size = new System.Drawing.Size(103, 17);
this.statusLabel.Size = new System.Drawing.Size(105, 17);
this.statusLabel.Text = "STATUS: Server Off";
//
// menuStrip1
@@ -110,7 +111,7 @@
this.helpToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(423, 24);
this.menuStrip1.Size = new System.Drawing.Size(430, 24);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
//
@@ -125,7 +126,7 @@
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(93, 22);
this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22);
this.exitToolStripMenuItem.Text = "Exit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
@@ -161,7 +162,7 @@
//
this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1;
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
this.notifyIcon1.Text = "notifyIcon1";
this.notifyIcon1.Text = "SamaPager Server";
this.notifyIcon1.Visible = true;
//
// contextMenuStrip1
@@ -191,7 +192,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(423, 377);
this.ClientSize = new System.Drawing.Size(430, 384);
this.Controls.Add(this.kryptonPanel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));

View File

@@ -73,6 +73,7 @@ namespace SamaPager_Server
private void Exit()
{
srv.KillServer();
this.Stop = true;
Application.Exit();
}

View File

@@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
[assembly: AssemblyTitle("SamaPager_Server")]
[assembly: AssemblyTitle("SamaPager Server")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SamaPager_Server")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyCompany("AndreStork")]
[assembly: AssemblyProduct("SamaPager Server")]
[assembly: AssemblyCopyright("©2025 NiggaChain AI Layer 2 Blockchain")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Numero di build
// Revisione
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.1.0.0")]

View File

@@ -70,6 +70,15 @@ namespace SamaPager_Server.Properties {
}
}
/// <summary>
/// Cerca una stringa localizzata simile a 1.1.
/// </summary>
internal static string currentVersion {
get {
return ResourceManager.GetString("currentVersion", resourceCulture);
}
}
/// <summary>
/// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
/// </summary>
@@ -79,5 +88,14 @@ namespace SamaPager_Server.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Cerca una stringa localizzata simile a Castagnetti.
/// </summary>
internal static string versionCodename {
get {
return ResourceManager.GetString("versionCodename", resourceCulture);
}
}
}
}

View File

@@ -124,4 +124,10 @@
<data name="5pagers1shalom" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\5pagers1shalom.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="currentVersion" xml:space="preserve">
<value>1.1</value>
</data>
<data name="versionCodename" xml:space="preserve">
<value>Castagnetti</value>
</data>
</root>

View File

@@ -40,7 +40,24 @@ namespace SamaPager_Server
IPEndPoint receiveEndPoint = ServerEndPoint;
byte[] receivedBytes = UdpServer.Receive(ref receiveEndPoint);
string receivedMessage = Encoding.UTF8.GetString(receivedBytes);
return $"[{DateTime.Now}] {receiveEndPoint}: {receivedMessage}";
byte[] bytesToSend;
switch (receivedMessage)
{
case "!getDateTime":
bytesToSend = Encoding.UTF8.GetBytes($"Hi, it's {DateTime.Now}");
this.UdpServer.Send(bytesToSend, bytesToSend.Length, receiveEndPoint);
return $"Command \"!getDateTime\" received by {receiveEndPoint}, sent local server time";
case "!getCurrentDir":
bytesToSend = Encoding.UTF8.GetBytes($"I'm working in {Environment.CurrentDirectory}");
this.UdpServer.Send(bytesToSend, bytesToSend.Length, receiveEndPoint);
return $"Command \"!getCurrentDir\" received by {receiveEndPoint}, sent server working directory";
case "!getCurrentUser":
bytesToSend = Encoding.UTF8.GetBytes($"Hi, I'm running as {Environment.UserName}");
this.UdpServer.Send(bytesToSend, bytesToSend.Length, receiveEndPoint);
return $"Command \"!getCurrentUser\" received by {receiveEndPoint}, sent the username the server is running on";
default:
return $"[{DateTime.Now}] {receiveEndPoint}: {receivedMessage}";
}
}
internal void KillServer()