using System; using System.Threading; using System.Windows.Forms; using StuMgmLib.MyNameSpace; namespace Test { public partial class Form1 : Form { TcpConn tcpConn = new TcpConn(); Thread tUpdateUi = null; private delegate void SetTextCallback(string text); public Form1() { InitializeComponent(); } private void Server_FormClosed(object sender, FormClosedEventArgs e) { System.Environment.Exit(0); } /// /// 委托:更新界面方法 /// private void setText(string text) { if (rtxHistory.InvokeRequired) { SetTextCallback method = new SetTextCallback(setText); Invoke(method, new object[] { text }); } else { rtxHistory.Text = text + rtxHistory.Text; } } /// /// btn开关点击事件:开启、关闭服务器 /// private void btnSerSwitch_Click(object sender, EventArgs e) { bool sFlag = tcpConn.SocketExist; try { if (sFlag == true) tcpConn.CloseServer(); else if (sFlag != true) { int port = Convert.ToInt16(txtPort.Text); tcpConn.OpenServer(port); tUpdateUi = new Thread(updateHistory); tUpdateUi.Start(); } } catch (Exception ep) { MessageBox.Show(ep.Message); } } /// /// 线程:接收客户端连接,接收数据,数据处理;更新历史界面 /// private void updateHistory() { while (tcpConn.SocketExist) { setText(tcpConn.acceptConnection()); setText(tcpConn.acpMsg()); } } /// /// 定时器更新btn开关服务器 /// private void tmr_Tick(object sender, EventArgs e) { if (tcpConn.SocketExist) btnSerSwitch.Text = "关闭服务器"; else btnSerSwitch.Text = "开启服务器"; } } }