コード例 #1
0
ファイル: Form1.cs プロジェクト: DanilovSoft/PortTunneling
        private void Button_server_Launch_Click(object sender, EventArgs e)
        {
            var me = (Button)sender;

            if (me.Text == "Stop")
            {
                _listener.Abort();

                _tunnelsHolder.DisableTunnels();

                tabControl1.TabPages.Add(tabPage_client);
                numericUpDown_serverPort.ReadOnly = false;

                me.Text = "Launch";
                GC.Collect();
            }
            else
            {
                try
                {
                    int port     = (int)numericUpDown_serverPort.Value;
                    var endPoint = new IPEndPoint(IPAddress.Any, port);

                    dataGridView1.SuspendLayout();
                    _tunnelsHolder.EnableTunnels();
                    dataGridView1.ResumeLayout();

                    var listener = new Server.Listener(endPoint);
                    listener.Connected    += Listener_Connected;
                    listener.Disconnected += Listener_Disconnected;
                    listener.Listen();
                    _listener = listener;

                    //Server.API.ApiListener.Instance.Enable();

                    me.Text = "Stop";
                    //me.Enabled = false;
                    tabControl1.TabPages.Remove(tabPage_client);
                    numericUpDown_serverPort.ReadOnly = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, ex.GetBaseException().Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }