예제 #1
0
 private void button1_Click(object sender, EventArgs e)
 {
     ListenTimer.Tick    += new EventHandler(ServerT_Tick);
     ListenTimer.Enabled  = true;
     ListenTimer.Interval = 5000; //执行间隔时间,单位为毫秒; 这里实际间隔为10分钟
     ListenTimer.Start();
 }
예제 #2
0
 private void btnStartListen_Click(object sender, EventArgs e)
 {
     if (!listenBool)
     {//启动监听
         ListenTimer.Tick    += new EventHandler(T_Tick);
         ListenTimer.Enabled  = true;
         ListenTimer.Interval = 5000; //执行间隔时间,单位为毫秒; 这里实际间隔为10分钟
         ListenTimer.Start();
     }
 }
예제 #3
0
 public Form1()
 {
     InitializeComponent();
     ipHost     = Dns.GetHostEntry("localhost");
     ipAddr     = ipHost.AddressList[0];
     ipEndPoint = new IPEndPoint(ipAddr, 10000);
     // Создаем сокет Tcp/Ip
     sListener           = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
     sListener.Blocking  = true;
     ListenTimer.Enabled = true;
     ListenTimer.Start();
     sListener.Bind(ipEndPoint);
     sListener.Listen(10);
 }
예제 #4
0
        private void Listener()
        {
            try
            {
                Logger.Text += String.Format("Ожидаем соединение через порт {0}", ipEndPoint);
                Logger.Update();
                // Программа приостанавливается, ожидая входящее соединение
                ListenTimer.Stop();
                Socket handler = sListener.Accept();
                string data    = null;
                ListenTimer.Start();
                // Мы дождались клиента, пытающегося с нами соединиться

                byte[] bytes    = new byte[1024];
                int    bytesRec = handler.Receive(bytes);

                data += Encoding.UTF8.GetString(bytes, 0, bytesRec);

                // Показываем данные на консоли
                Logger.Text += String.Format("Полученный текст: " + data + "\n\n");
                Logger.Update();
                // Отправляем ответ клиенту\
                string reply = "Спасибо за запрос в " + data.Length.ToString()
                               + " символов";
                byte[] msg = Encoding.UTF8.GetBytes(reply);
                handler.Send(msg);

                if (data.IndexOf("<TheEnd>") > -1)
                {
                    Logger.Update();
                    Logger.Text += String.Format("Сервер завершил соединение с клиентом.");
                }

                handler.Shutdown(SocketShutdown.Both);
                handler.Close();
            }
            catch (Exception ex)
            {
                Logger.Text += String.Format(ex.ToString());
            }
        }