| @@ -1,9 +1,5 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.IO; | |||
| using System.IO; | |||
| using System.Runtime.Serialization.Formatters.Binary; | |||
| using System.Text; | |||
| using System.Data; | |||
| namespace StuMgmLib.MyNameSpace | |||
| { | |||
| @@ -11,17 +11,19 @@ namespace StuMgmLib.MyNameSpace | |||
| { | |||
| public short account { get; set; } | |||
| public string password { get; set; } | |||
| public string [] sqlStr { get; set; } | |||
| public string[] sqlStr { get; set; } | |||
| } | |||
| [Serializable] | |||
| public class ServerSend | |||
| { | |||
| public short permission { get; set; } | |||
| public DataSet ds { get; set; } | |||
| public bool sqlSucceed { get; set; } | |||
| } | |||
| } | |||
| #region Unused | |||
| #region 题目信息 | |||
| [Serializable] | |||
| public class CourseInfo | |||
| @@ -129,4 +131,8 @@ namespace StuMgmLib.MyNameSpace | |||
| //} | |||
| } | |||
| #endregion | |||
| #endregion | |||
| } | |||
| @@ -27,8 +27,9 @@ namespace StuMgmLib.MyNameSpace | |||
| * Account Permission (SqlOperate) | |||
| * | |||
| * Send: ____________________________________________________________________ | |||
| * | Permission | DataSet | | |||
| * |___short________DS_______________________________________________________________| | |||
| * | Permission | DataSet | | |||
| * |___short________DS___________________________________________________| | |||
| * | |||
| */ | |||
| /// <summary> | |||
| @@ -43,11 +44,6 @@ namespace StuMgmLib.MyNameSpace | |||
| ss.ds = null; | |||
| return ss; | |||
| } | |||
| bool sqlRes = false; | |||
| if (cs.sqlStr != null) // sql语句为空,则表示仅登录验证,应 | |||
| { | |||
| sqlRes = mySqlModify(cs.sqlStr); | |||
| } | |||
| string[] tbName; | |||
| bool stuFlag = false; | |||
| @@ -66,11 +62,18 @@ namespace StuMgmLib.MyNameSpace | |||
| tbName = null; | |||
| break; | |||
| } | |||
| ss.sqlSucceed = false; | |||
| if (cs.sqlStr != null) // sql语句为空,则表示仅登录验证;若不为空,则取数据库操作返回值,并返回SS; | |||
| { | |||
| ss.sqlSucceed = mySqlModify(tbName, cs.sqlStr); | |||
| return ss; | |||
| } | |||
| ss.ds = getDataSet(tbName, stuFlag, cs.account); | |||
| return ss; | |||
| } | |||
| /// <summary> | |||
| /// 登录验证,若失败,则返回错误码;若身份验证成功,则返回用户权限; | |||
| /// </summary> | |||
| @@ -93,9 +96,8 @@ namespace StuMgmLib.MyNameSpace | |||
| else | |||
| return notFound; | |||
| } | |||
| catch (MySqlException mySqlEx) | |||
| catch (MySqlException) | |||
| { | |||
| MessageBox.Show(mySqlEx.Message); | |||
| return error; | |||
| } | |||
| finally | |||
| @@ -107,7 +109,7 @@ namespace StuMgmLib.MyNameSpace | |||
| /// <summary> | |||
| /// 改 | |||
| /// </summary> | |||
| private static bool mySqlModify(string[] sqlStr) | |||
| private static bool mySqlModify(string[] tbName, string[] sqlStr) // Need to change ...... | |||
| { | |||
| MySqlConnection con = new MySqlConnection(conStr); | |||
| try | |||
| @@ -116,8 +118,8 @@ namespace StuMgmLib.MyNameSpace | |||
| int len = sqlStr.Length; | |||
| for (int index = 0; index < len; index++) | |||
| { | |||
| MySqlCommand mCmd = new MySqlCommand(sqlStr[index], con); // Need to change ...... | |||
| // To do sth here ...... | |||
| MySqlCommand mCmd = new MySqlCommand(sqlStr[index], con); // 优化:所操作数据表是否匹配权限 | |||
| mCmd.ExecuteNonQuery(); | |||
| } | |||
| return true; | |||
| } | |||
| @@ -1,12 +1,16 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Data; | |||
| /* Describtion : Class for Tcp Network Connection | |||
| * Company : Wuxi Xinje | |||
| * Author : Somuns | |||
| * DateTime : 2021/1/18 | |||
| */ | |||
| using System; | |||
| using System.Net; | |||
| using System.Net.Sockets; | |||
| using System.Windows.Forms; | |||
| namespace StuMgmLib.MyNameSpace | |||
| { | |||
| // 还有一种验证连接方式 Token | |||
| // 还有一种验证连接方式: Token | |||
| public class TcpConn | |||
| { | |||
| private IPEndPoint IPP = null; | |||
| @@ -23,10 +27,23 @@ namespace StuMgmLib.MyNameSpace | |||
| private set { my_SocketExist = value; } | |||
| } | |||
| public void GetIPAddress(ComboBox cb) | |||
| { | |||
| cb.Items.Clear(); | |||
| foreach (IPAddress ipAddr in Dns.GetHostEntry(Dns.GetHostName()).AddressList) | |||
| { | |||
| if (ipAddr.AddressFamily.ToString() == "InterNetwork") | |||
| { | |||
| cb.Items.Add(ipAddr.ToString()); | |||
| } | |||
| } | |||
| cb.Items.Add("127.0.0.1"); | |||
| } | |||
| #region 开启服务器 | |||
| public void OpenServer(int port) | |||
| public void OpenServer(string ipAddr, int port) | |||
| { | |||
| IPP = new IPEndPoint(IPAddress.Parse("10.10.0.44"), port); | |||
| IPP = new IPEndPoint(IPAddress.Parse(ipAddr), port); | |||
| socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); | |||
| socket.Bind(IPP); | |||
| socket.Listen(0); | |||
| @@ -101,10 +118,5 @@ namespace StuMgmLib.MyNameSpace | |||
| } | |||
| #endregion | |||
| } | |||
| } | |||
| @@ -45,7 +45,7 @@ | |||
| <ItemGroup> | |||
| <Compile Include="MyNameSpace\BinaryED.cs" /> | |||
| <Compile Include="MyNameSpace\DataAnalyze.cs" /> | |||
| <Compile Include="MyNameSpace\StuMgmSer.cs" /> | |||
| <Compile Include="MyNameSpace\CommonData.cs" /> | |||
| <Compile Include="MyNameSpace\TcpConn.cs" /> | |||
| <Compile Include="Properties\AssemblyInfo.cs" /> | |||
| </ItemGroup> | |||
| @@ -0,0 +1,124 @@ | |||
| namespace StuMgmLib | |||
| { | |||
| partial class Exit | |||
| { | |||
| /// <summary> | |||
| /// Required designer variable. | |||
| /// </summary> | |||
| private System.ComponentModel.IContainer components = null; | |||
| /// <summary> | |||
| /// Clean up any resources being used. | |||
| /// </summary> | |||
| /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> | |||
| protected override void Dispose(bool disposing) | |||
| { | |||
| if (disposing && (components != null)) | |||
| { | |||
| components.Dispose(); | |||
| } | |||
| base.Dispose(disposing); | |||
| } | |||
| #region Windows Form Designer generated code | |||
| /// <summary> | |||
| /// Required method for Designer support - do not modify | |||
| /// the contents of this method with the code editor. | |||
| /// </summary> | |||
| private void InitializeComponent() | |||
| { | |||
| this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); | |||
| this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); | |||
| this.label1 = new System.Windows.Forms.Label(); | |||
| this.button1 = new System.Windows.Forms.Button(); | |||
| this.button2 = new System.Windows.Forms.Button(); | |||
| this.tableLayoutPanel2.SuspendLayout(); | |||
| this.tableLayoutPanel3.SuspendLayout(); | |||
| this.SuspendLayout(); | |||
| // | |||
| // tableLayoutPanel2 | |||
| // | |||
| this.tableLayoutPanel2.ColumnCount = 1; | |||
| this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); | |||
| this.tableLayoutPanel2.Controls.Add(this.label1, 0, 1); | |||
| this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 12); | |||
| this.tableLayoutPanel2.Name = "tableLayoutPanel2"; | |||
| this.tableLayoutPanel2.RowCount = 2; | |||
| this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); | |||
| this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); | |||
| this.tableLayoutPanel2.Size = new System.Drawing.Size(232, 123); | |||
| this.tableLayoutPanel2.TabIndex = 1; | |||
| // | |||
| // tableLayoutPanel3 | |||
| // | |||
| this.tableLayoutPanel3.ColumnCount = 4; | |||
| this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15F)); | |||
| this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 35F)); | |||
| this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 35F)); | |||
| this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15F)); | |||
| this.tableLayoutPanel3.Controls.Add(this.button1, 1, 0); | |||
| this.tableLayoutPanel3.Controls.Add(this.button2, 2, 0); | |||
| this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 0); | |||
| this.tableLayoutPanel3.Name = "tableLayoutPanel3"; | |||
| this.tableLayoutPanel3.RowCount = 1; | |||
| this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); | |||
| this.tableLayoutPanel3.Size = new System.Drawing.Size(302, 193); | |||
| this.tableLayoutPanel3.TabIndex = 1; | |||
| // | |||
| // label1 | |||
| // | |||
| this.label1.AutoSize = true; | |||
| this.label1.Location = new System.Drawing.Point(3, 61); | |||
| this.label1.Name = "label1"; | |||
| this.label1.Size = new System.Drawing.Size(56, 23); | |||
| this.label1.TabIndex = 0; | |||
| this.label1.Text = "label1"; | |||
| // | |||
| // button1 | |||
| // | |||
| this.button1.Location = new System.Drawing.Point(48, 3); | |||
| this.button1.Name = "button1"; | |||
| this.button1.Size = new System.Drawing.Size(99, 67); | |||
| this.button1.TabIndex = 1; | |||
| this.button1.Text = "button1"; | |||
| this.button1.UseVisualStyleBackColor = true; | |||
| // | |||
| // button2 | |||
| // | |||
| this.button2.Location = new System.Drawing.Point(129, 11); | |||
| this.button2.Name = "button2"; | |||
| this.button2.Size = new System.Drawing.Size(99, 55); | |||
| this.button2.TabIndex = 2; | |||
| this.button2.Text = "button2"; | |||
| this.button2.UseVisualStyleBackColor = true; | |||
| // | |||
| // Exit | |||
| // | |||
| this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 22F); | |||
| this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | |||
| this.ClientSize = new System.Drawing.Size(302, 193); | |||
| this.Controls.Add(this.tableLayoutPanel3); | |||
| this.Controls.Add(this.tableLayoutPanel2); | |||
| this.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); | |||
| this.Name = "Exit"; | |||
| this.Text = "Exit"; | |||
| this.tableLayoutPanel2.ResumeLayout(false); | |||
| this.tableLayoutPanel2.PerformLayout(); | |||
| this.tableLayoutPanel3.ResumeLayout(false); | |||
| this.ResumeLayout(false); | |||
| } | |||
| #endregion | |||
| private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; | |||
| private System.Windows.Forms.Label label1; | |||
| private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; | |||
| private System.Windows.Forms.Button button1; | |||
| private System.Windows.Forms.Button button2; | |||
| } | |||
| } | |||
| @@ -0,0 +1,18 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.ComponentModel; | |||
| using System.Data; | |||
| using System.Drawing; | |||
| using System.Text; | |||
| using System.Windows.Forms; | |||
| namespace StuMgmLib | |||
| { | |||
| public partial class Exit : Form | |||
| { | |||
| public Exit() | |||
| { | |||
| InitializeComponent(); | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,120 @@ | |||
| <?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |||
| </resheader> | |||
| <resheader name="writer"> | |||
| <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |||
| </resheader> | |||
| </root> | |||
| @@ -31,15 +31,20 @@ | |||
| this.components = new System.ComponentModel.Container(); | |||
| this.tlpAll = new System.Windows.Forms.TableLayoutPanel(); | |||
| this.rtxHistory = new System.Windows.Forms.RichTextBox(); | |||
| this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); | |||
| this.txtPort = new System.Windows.Forms.TextBox(); | |||
| this.tlpSettings = new System.Windows.Forms.TableLayoutPanel(); | |||
| this.lblSwiSta = new System.Windows.Forms.Label(); | |||
| this.btnSerSwitch = new System.Windows.Forms.Button(); | |||
| this.lblPort = new System.Windows.Forms.Label(); | |||
| this.txtPort = new System.Windows.Forms.TextBox(); | |||
| this.lblIP = new System.Windows.Forms.Label(); | |||
| this.cbxIPAddr = new System.Windows.Forms.ComboBox(); | |||
| this.menuStrip1 = new System.Windows.Forms.MenuStrip(); | |||
| this.菜单ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); | |||
| this.刷新IPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); | |||
| this.tmr = new System.Windows.Forms.Timer(this.components); | |||
| this.tlpAll.SuspendLayout(); | |||
| this.tableLayoutPanel1.SuspendLayout(); | |||
| this.tlpSettings.SuspendLayout(); | |||
| this.menuStrip1.SuspendLayout(); | |||
| this.SuspendLayout(); | |||
| // | |||
| // tlpAll | |||
| @@ -48,14 +53,14 @@ | |||
| this.tlpAll.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 27.25581F)); | |||
| this.tlpAll.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 72.74419F)); | |||
| this.tlpAll.Controls.Add(this.rtxHistory, 0, 0); | |||
| this.tlpAll.Controls.Add(this.tableLayoutPanel1, 0, 0); | |||
| this.tlpAll.Controls.Add(this.tlpSettings, 0, 0); | |||
| this.tlpAll.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.tlpAll.Location = new System.Drawing.Point(0, 24); | |||
| this.tlpAll.Location = new System.Drawing.Point(0, 28); | |||
| this.tlpAll.Name = "tlpAll"; | |||
| this.tlpAll.RowCount = 1; | |||
| this.tlpAll.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); | |||
| this.tlpAll.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 413F)); | |||
| this.tlpAll.Size = new System.Drawing.Size(1075, 413); | |||
| this.tlpAll.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 409F)); | |||
| this.tlpAll.Size = new System.Drawing.Size(1075, 409); | |||
| this.tlpAll.TabIndex = 0; | |||
| // | |||
| // rtxHistory | |||
| @@ -64,45 +69,38 @@ | |||
| this.rtxHistory.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.rtxHistory.Location = new System.Drawing.Point(295, 3); | |||
| this.rtxHistory.Name = "rtxHistory"; | |||
| this.rtxHistory.Size = new System.Drawing.Size(777, 407); | |||
| this.rtxHistory.Size = new System.Drawing.Size(777, 403); | |||
| this.rtxHistory.TabIndex = 2; | |||
| this.rtxHistory.Text = ""; | |||
| // | |||
| // tableLayoutPanel1 | |||
| // | |||
| this.tableLayoutPanel1.ColumnCount = 2; | |||
| this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45.8042F)); | |||
| this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 54.1958F)); | |||
| this.tableLayoutPanel1.Controls.Add(this.txtPort, 1, 0); | |||
| this.tableLayoutPanel1.Controls.Add(this.lblSwiSta, 0, 1); | |||
| this.tableLayoutPanel1.Controls.Add(this.btnSerSwitch, 1, 1); | |||
| this.tableLayoutPanel1.Controls.Add(this.lblPort, 0, 0); | |||
| this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; | |||
| this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); | |||
| this.tableLayoutPanel1.Name = "tableLayoutPanel1"; | |||
| this.tableLayoutPanel1.RowCount = 2; | |||
| this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); | |||
| this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); | |||
| this.tableLayoutPanel1.Size = new System.Drawing.Size(286, 100); | |||
| this.tableLayoutPanel1.TabIndex = 0; | |||
| // | |||
| // txtPort | |||
| // | |||
| this.txtPort.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); | |||
| this.txtPort.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.txtPort.Location = new System.Drawing.Point(134, 10); | |||
| this.txtPort.Name = "txtPort"; | |||
| this.txtPort.Size = new System.Drawing.Size(149, 29); | |||
| this.txtPort.TabIndex = 3; | |||
| this.txtPort.Text = "502"; | |||
| this.txtPort.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; | |||
| // tlpSettings | |||
| // | |||
| this.tlpSettings.ColumnCount = 2; | |||
| this.tlpSettings.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45.8042F)); | |||
| this.tlpSettings.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 54.1958F)); | |||
| this.tlpSettings.Controls.Add(this.lblSwiSta, 0, 2); | |||
| this.tlpSettings.Controls.Add(this.btnSerSwitch, 1, 2); | |||
| this.tlpSettings.Controls.Add(this.lblPort, 0, 1); | |||
| this.tlpSettings.Controls.Add(this.txtPort, 1, 1); | |||
| this.tlpSettings.Controls.Add(this.lblIP, 0, 0); | |||
| this.tlpSettings.Controls.Add(this.cbxIPAddr, 1, 0); | |||
| this.tlpSettings.Dock = System.Windows.Forms.DockStyle.Top; | |||
| this.tlpSettings.Location = new System.Drawing.Point(3, 3); | |||
| this.tlpSettings.Name = "tlpSettings"; | |||
| this.tlpSettings.RowCount = 3; | |||
| this.tlpSettings.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); | |||
| this.tlpSettings.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); | |||
| this.tlpSettings.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); | |||
| this.tlpSettings.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); | |||
| this.tlpSettings.Size = new System.Drawing.Size(286, 178); | |||
| this.tlpSettings.TabIndex = 0; | |||
| // | |||
| // lblSwiSta | |||
| // | |||
| this.lblSwiSta.Anchor = System.Windows.Forms.AnchorStyles.None; | |||
| this.lblSwiSta.Anchor = System.Windows.Forms.AnchorStyles.Left; | |||
| this.lblSwiSta.AutoSize = true; | |||
| this.lblSwiSta.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.lblSwiSta.Location = new System.Drawing.Point(10, 63); | |||
| this.lblSwiSta.Location = new System.Drawing.Point(3, 136); | |||
| this.lblSwiSta.Name = "lblSwiSta"; | |||
| this.lblSwiSta.Size = new System.Drawing.Size(110, 23); | |||
| this.lblSwiSta.TabIndex = 1; | |||
| @@ -110,11 +108,11 @@ | |||
| // | |||
| // btnSerSwitch | |||
| // | |||
| this.btnSerSwitch.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.btnSerSwitch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); | |||
| this.btnSerSwitch.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.btnSerSwitch.Location = new System.Drawing.Point(134, 53); | |||
| this.btnSerSwitch.Location = new System.Drawing.Point(134, 121); | |||
| this.btnSerSwitch.Name = "btnSerSwitch"; | |||
| this.btnSerSwitch.Size = new System.Drawing.Size(149, 44); | |||
| this.btnSerSwitch.Size = new System.Drawing.Size(149, 54); | |||
| this.btnSerSwitch.TabIndex = 2; | |||
| this.btnSerSwitch.Text = "开启服务器"; | |||
| this.btnSerSwitch.UseVisualStyleBackColor = true; | |||
| @@ -122,24 +120,75 @@ | |||
| // | |||
| // lblPort | |||
| // | |||
| this.lblPort.Anchor = System.Windows.Forms.AnchorStyles.None; | |||
| this.lblPort.Anchor = System.Windows.Forms.AnchorStyles.Left; | |||
| this.lblPort.AutoSize = true; | |||
| this.lblPort.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.lblPort.Location = new System.Drawing.Point(20, 13); | |||
| this.lblPort.Location = new System.Drawing.Point(3, 77); | |||
| this.lblPort.Name = "lblPort"; | |||
| this.lblPort.Size = new System.Drawing.Size(90, 23); | |||
| this.lblPort.TabIndex = 0; | |||
| this.lblPort.Text = "本地端口"; | |||
| // | |||
| // txtPort | |||
| // | |||
| this.txtPort.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); | |||
| this.txtPort.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.txtPort.Location = new System.Drawing.Point(134, 74); | |||
| this.txtPort.Name = "txtPort"; | |||
| this.txtPort.Size = new System.Drawing.Size(149, 29); | |||
| this.txtPort.TabIndex = 3; | |||
| this.txtPort.Text = "502"; | |||
| this.txtPort.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; | |||
| // | |||
| // lblIP | |||
| // | |||
| this.lblIP.Anchor = System.Windows.Forms.AnchorStyles.Left; | |||
| this.lblIP.AutoSize = true; | |||
| this.lblIP.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.lblIP.Location = new System.Drawing.Point(3, 18); | |||
| this.lblIP.Name = "lblIP"; | |||
| this.lblIP.Size = new System.Drawing.Size(66, 23); | |||
| this.lblIP.TabIndex = 4; | |||
| this.lblIP.Text = "本机IP"; | |||
| // | |||
| // cbxIPAddr | |||
| // | |||
| this.cbxIPAddr.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); | |||
| this.cbxIPAddr.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; | |||
| this.cbxIPAddr.Font = new System.Drawing.Font("Calibri", 10.8F); | |||
| this.cbxIPAddr.FormattingEnabled = true; | |||
| this.cbxIPAddr.Location = new System.Drawing.Point(134, 14); | |||
| this.cbxIPAddr.Name = "cbxIPAddr"; | |||
| this.cbxIPAddr.RightToLeft = System.Windows.Forms.RightToLeft.Yes; | |||
| this.cbxIPAddr.Size = new System.Drawing.Size(149, 30); | |||
| this.cbxIPAddr.TabIndex = 5; | |||
| // | |||
| // menuStrip1 | |||
| // | |||
| this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); | |||
| this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { | |||
| this.菜单ToolStripMenuItem}); | |||
| this.menuStrip1.Location = new System.Drawing.Point(0, 0); | |||
| this.menuStrip1.Name = "menuStrip1"; | |||
| this.menuStrip1.Size = new System.Drawing.Size(1075, 24); | |||
| this.menuStrip1.Size = new System.Drawing.Size(1075, 28); | |||
| this.menuStrip1.TabIndex = 1; | |||
| this.menuStrip1.Text = "menuStrip1"; | |||
| // | |||
| // 菜单ToolStripMenuItem | |||
| // | |||
| this.菜单ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { | |||
| this.刷新IPToolStripMenuItem}); | |||
| this.菜单ToolStripMenuItem.Name = "菜单ToolStripMenuItem"; | |||
| this.菜单ToolStripMenuItem.Size = new System.Drawing.Size(51, 24); | |||
| this.菜单ToolStripMenuItem.Text = "菜单"; | |||
| // | |||
| // 刷新IPToolStripMenuItem | |||
| // | |||
| this.刷新IPToolStripMenuItem.Name = "刷新IPToolStripMenuItem"; | |||
| this.刷新IPToolStripMenuItem.Size = new System.Drawing.Size(181, 26); | |||
| this.刷新IPToolStripMenuItem.Text = "刷新IP"; | |||
| this.刷新IPToolStripMenuItem.Click += new System.EventHandler(this.刷新IPToolStripMenuItem_Click); | |||
| // | |||
| // tmr | |||
| // | |||
| this.tmr.Enabled = true; | |||
| @@ -155,10 +204,13 @@ | |||
| this.MainMenuStrip = this.menuStrip1; | |||
| this.Name = "Server"; | |||
| this.Text = "Server"; | |||
| this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Server_FormClosed); | |||
| this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Server_FormClosing); | |||
| this.Load += new System.EventHandler(this.Server_Load); | |||
| this.tlpAll.ResumeLayout(false); | |||
| this.tableLayoutPanel1.ResumeLayout(false); | |||
| this.tableLayoutPanel1.PerformLayout(); | |||
| this.tlpSettings.ResumeLayout(false); | |||
| this.tlpSettings.PerformLayout(); | |||
| this.menuStrip1.ResumeLayout(false); | |||
| this.menuStrip1.PerformLayout(); | |||
| this.ResumeLayout(false); | |||
| this.PerformLayout(); | |||
| @@ -169,12 +221,16 @@ | |||
| private System.Windows.Forms.TableLayoutPanel tlpAll; | |||
| private System.Windows.Forms.MenuStrip menuStrip1; | |||
| private System.Windows.Forms.Label lblSwiSta; | |||
| private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; | |||
| private System.Windows.Forms.TableLayoutPanel tlpSettings; | |||
| private System.Windows.Forms.Button btnSerSwitch; | |||
| private System.Windows.Forms.Label lblPort; | |||
| private System.Windows.Forms.TextBox txtPort; | |||
| private System.Windows.Forms.Timer tmr; | |||
| private System.Windows.Forms.RichTextBox rtxHistory; | |||
| private System.Windows.Forms.Label lblIP; | |||
| private System.Windows.Forms.ComboBox cbxIPAddr; | |||
| private System.Windows.Forms.ToolStripMenuItem 菜单ToolStripMenuItem; | |||
| private System.Windows.Forms.ToolStripMenuItem 刷新IPToolStripMenuItem; | |||
| } | |||
| } | |||
| @@ -2,6 +2,7 @@ | |||
| using System.Threading; | |||
| using System.Windows.Forms; | |||
| using StuMgmLib.MyNameSpace; | |||
| using System.ComponentModel; | |||
| namespace StuMgmServer | |||
| { | |||
| @@ -15,13 +16,9 @@ namespace StuMgmServer | |||
| { | |||
| InitializeComponent(); | |||
| } | |||
| private void Server_FormClosed(object sender, FormClosedEventArgs e) | |||
| private void 刷新IPToolStripMenuItem_Click(object sender, EventArgs e) | |||
| { | |||
| DialogResult dr = MessageBox.Show("确认退出程序?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); | |||
| if (dr == DialogResult.OK) | |||
| { | |||
| System.Environment.Exit(0); | |||
| } | |||
| tcpConn.GetIPAddress(cbxIPAddr); | |||
| } | |||
| /// <summary> | |||
| /// 委托:更新界面方法 | |||
| @@ -52,7 +49,7 @@ namespace StuMgmServer | |||
| else if (sFlag != true) | |||
| { | |||
| int port = Convert.ToInt16(txtPort.Text); | |||
| tcpConn.OpenServer(port); | |||
| tcpConn.OpenServer(cbxIPAddr.Text, port); | |||
| tUpdateUi = new Thread(updateHistory); | |||
| tUpdateUi.Start(); | |||
| } | |||
| @@ -86,6 +83,27 @@ namespace StuMgmServer | |||
| btnSerSwitch.Text = "开启服务器"; | |||
| } | |||
| private void Server_Load(object sender, EventArgs e) | |||
| { | |||
| tcpConn.GetIPAddress(cbxIPAddr); | |||
| } | |||
| private void Server_FormClosing(object sender, FormClosingEventArgs e) | |||
| { | |||
| //DialogResult dr = MessageBox.Show("确认退出程序?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); | |||
| //if (dr != DialogResult.Yes) | |||
| //e.Cancel = true; | |||
| //tmr.Dispose(); | |||
| //if (tUpdateUi != null) | |||
| // tUpdateUi.Abort(); | |||
| //if (MessageBox.Show("确认退出程序?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) | |||
| System.Environment.Exit(0); | |||
| } | |||
| } | |||
| } | |||
| @@ -123,4 +123,7 @@ | |||
| <metadata name="tmr.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |||
| <value>159, 17</value> | |||
| </metadata> | |||
| <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | |||
| <value>68</value> | |||
| </metadata> | |||
| </root> | |||
| @@ -43,6 +43,12 @@ | |||
| <Reference Include="System.Xml" /> | |||
| </ItemGroup> | |||
| <ItemGroup> | |||
| <Compile Include="Exit.cs"> | |||
| <SubType>Form</SubType> | |||
| </Compile> | |||
| <Compile Include="Exit.Designer.cs"> | |||
| <DependentUpon>Exit.cs</DependentUpon> | |||
| </Compile> | |||
| <Compile Include="Server.cs"> | |||
| <SubType>Form</SubType> | |||
| </Compile> | |||
| @@ -51,6 +57,9 @@ | |||
| </Compile> | |||
| <Compile Include="Program.cs" /> | |||
| <Compile Include="Properties\AssemblyInfo.cs" /> | |||
| <EmbeddedResource Include="Exit.resx"> | |||
| <DependentUpon>Exit.cs</DependentUpon> | |||
| </EmbeddedResource> | |||
| <EmbeddedResource Include="Properties\Resources.resx"> | |||
| <Generator>ResXFileCodeGenerator</Generator> | |||
| <LastGenOutput>Resources.Designer.cs</LastGenOutput> | |||
| @@ -66,30 +66,33 @@ | |||
| // | |||
| // dataGridView1 | |||
| // | |||
| this.dataGridView1.AllowUserToAddRows = false; | |||
| this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; | |||
| this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.dataGridView1.Location = new System.Drawing.Point(3, 3); | |||
| this.dataGridView1.Name = "dataGridView1"; | |||
| this.dataGridView1.RowTemplate.Height = 27; | |||
| this.dataGridView1.Size = new System.Drawing.Size(1103, 153); | |||
| this.dataGridView1.Size = new System.Drawing.Size(1103, 216); | |||
| this.dataGridView1.TabIndex = 2; | |||
| // | |||
| // dataGridView2 | |||
| // | |||
| this.dataGridView2.AllowUserToAddRows = false; | |||
| this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; | |||
| this.dataGridView2.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.dataGridView2.Location = new System.Drawing.Point(3, 321); | |||
| this.dataGridView2.Location = new System.Drawing.Point(3, 447); | |||
| this.dataGridView2.Name = "dataGridView2"; | |||
| this.dataGridView2.Size = new System.Drawing.Size(1103, 156); | |||
| this.dataGridView2.Size = new System.Drawing.Size(1103, 218); | |||
| this.dataGridView2.TabIndex = 3; | |||
| // | |||
| // dataGridView3 | |||
| // | |||
| this.dataGridView3.AllowUserToAddRows = false; | |||
| this.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; | |||
| this.dataGridView3.Dock = System.Windows.Forms.DockStyle.Fill; | |||
| this.dataGridView3.Location = new System.Drawing.Point(3, 162); | |||
| this.dataGridView3.Location = new System.Drawing.Point(3, 225); | |||
| this.dataGridView3.Name = "dataGridView3"; | |||
| this.dataGridView3.Size = new System.Drawing.Size(1103, 153); | |||
| this.dataGridView3.Size = new System.Drawing.Size(1103, 216); | |||
| this.dataGridView3.TabIndex = 4; | |||
| // | |||
| // tableLayoutPanel1 | |||
| @@ -121,14 +124,14 @@ | |||
| this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); | |||
| this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); | |||
| this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); | |||
| this.tableLayoutPanel2.Size = new System.Drawing.Size(1109, 480); | |||
| this.tableLayoutPanel2.Size = new System.Drawing.Size(1109, 668); | |||
| this.tableLayoutPanel2.TabIndex = 6; | |||
| // | |||
| // Form1 | |||
| // | |||
| this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); | |||
| this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | |||
| this.ClientSize = new System.Drawing.Size(1109, 541); | |||
| this.ClientSize = new System.Drawing.Size(1109, 729); | |||
| this.Controls.Add(this.tableLayoutPanel2); | |||
| this.Controls.Add(this.tableLayoutPanel1); | |||
| this.Name = "Form1"; | |||
| @@ -30,27 +30,35 @@ namespace Test | |||
| cs.account = 01941; | |||
| cs.password = "980505"; | |||
| cs.sqlStr = null; | |||
| byte[] send = BinaryED.Serialize<Info.ClientSend>(cs); | |||
| socket.Send(send); | |||
| byte[] recv = new byte[65535]; | |||
| socket.Receive(recv); | |||
| Info.ServerSend ss = BinaryED.Deserialize<Info.ServerSend>(recv); | |||
| short per = ss.permission; | |||
| DataSet ds = ss.ds; | |||
| DataTable dt1 = ds.Tables["course_info"]; | |||
| DataTable dt2 = ds.Tables["user_info"]; | |||
| DataTable dt3 = ds.Tables["user"]; | |||
| dataGridView1.DataSource = dt1; | |||
| dataGridView2.DataSource = dt2; | |||
| dataGridView3.DataSource = dt3; | |||
| //cs.sqlStr = new string[1]; | |||
| //cs.sqlStr[0] = "UPDATE user_info set course_status = '李俊阳是个憨憨' WHERE job_id=1941"; | |||
| if (socket != null) | |||
| { | |||
| byte[] send = BinaryED.Serialize<Info.ClientSend>(cs); | |||
| socket.Send(send); | |||
| byte[] recv = new byte[65535]; | |||
| socket.Receive(recv); | |||
| Info.ServerSend ss = BinaryED.Deserialize<Info.ServerSend>(recv); | |||
| //short per = ss.permission; | |||
| DataSet ds = ss.ds; | |||
| if (ds != null) | |||
| { | |||
| DataTable dt1 = ds.Tables["course_info"]; | |||
| DataTable dt2 = ds.Tables["user_info"]; | |||
| DataTable dt3 = ds.Tables["user"]; | |||
| dataGridView1.DataSource = dt1; | |||
| dataGridView2.DataSource = dt2; | |||
| dataGridView3.DataSource = dt3; | |||
| } | |||
| } | |||
| socket = null; | |||
| } | |||
| private void button2_Click(object sender, EventArgs e) | |||
| { | |||
| try | |||
| { | |||
| string ip = "127.0.0.1"; | |||
| string ip = "10.10.0.44"; | |||
| int port = 502; | |||
| IPP = new IPEndPoint(IPAddress.Parse(ip), port); | |||
| socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); | |||