///
///Interaction logic for MainWindow.xaml///
public partial classMainWindow : Window
{
SocketListener listener;publicMainWindow()
{
InitializeComponent();
InitServer();
}private voidInitServer()
{
System.Timers.Timer t= new System.Timers.Timer(2000);//实例化Timer类,设置间隔时间为5000毫秒;
t.Elapsed += newSystem.Timers.ElapsedEventHandler(CheckListen);//到达时间的时候执行事件;
t.AutoReset = true;
t.Start();
}private void CheckListen(objectsender, System.Timers.ElapsedEventArgs e)
{if (listener != null && listener.Connection != null)
{//label2.Content = listener.Connection.Count.ToString();
ShowText("连接数:" +listener.Connection.Count.ToString());
}
}private void button1_Click(objectsender, RoutedEventArgs e)
{
Thread th= new Thread(newThreadStart(SocketListen));
th.Start();
}private voidSocketListen()
{
listener= newSocketListener();
listener.ReceiveTextEvent+= newSocketListener.ReceiveTextHandler(ShowText);
listener.StartListen();
}public delegate void ShowTextHandler(stringtext);
ShowTextHandler setText;private void ShowText(stringtext)
{if (System.Threading.Thread.CurrentThread !=txtSocketInfo.Dispatcher.Thread)
{if (setText == null)
{
setText= newShowTextHandler(ShowText);
}
txtSocketInfo.Dispatcher.BeginInvoke(setText, DispatcherPriority.Normal,new string[] { text });
}else{
txtSocketInfo.AppendText(text+ "");
}
}private void button2_Click(objectsender, RoutedEventArgs e)
{
ClientWindow client= newClientWindow();
client.Show();
}
}