示例#1
0
        private void button2_Click(object sender, EventArgs e)
        {
            if (server != null)
            {
                Console.WriteLine("thread aborted.");
                server.terminateGracefully         = true;
                server.terminatecurrentsocket      = true;
                server.terminatecurrentsocketMouse = true;
                server.terminatecurrentsocketKeybd = true;
                server.terminatecurrentsocketPrinc = true;
                server.MouseUDPreceiveDone.Set();
                server.receiveDone.Set();
                server.KeybdreceiveDone.Set();
                server.PrincreceiveDone.Set();
                server.CloseTheSocket();

                server = null;

                DoSomething("offline");
            }
            else
            {
                MessageBox.Show("server gia offline");
            }
        }
示例#2
0
 public void DoSomething2(string text)
 {
     try
     {
         if (InvokeRequired)
         {
             Invoke(new InvokeDelegate(DoSomething2), text);
             return;
         }
         // dosomething with text
         label3.Text = text;
         server      = null;
     }
     catch (Exception ex) {
         return;
     }
 }
示例#3
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (server == null)
            {
                if (textBox1.Text == "")
                {
                    MessageBox.Show("devi inserire una porta.",
                                    "Attenzione");
                    return;
                }
                int port = Convert.ToInt32(textBox1.Text);
                if (port < 1024 || port > 63000)
                {
                    MessageBox.Show("Porta non valida.",
                                    "Attenzione");
                    return;
                }
                if (textBox2.Text == "")
                {
                    MessageBox.Show("devi inserire una password.",
                                    "Attenzione");
                    return;
                }

                string password = textBox2.Text;
                clipb = new ClipboardSender();
                // istanzio l'oggetto server , creato sulla porta e la password scelte dall'utente.
                server = new MyServer();
                server.setpassw(password);
                server.setport(Convert.ToInt32(textBox1.Text));
                server.form = this;
                server.clp  = clipb;

                t = new Thread(new ThreadStart(server.StartListening)); // il thread t è quello che fa il run del server stesso
                t.IsBackground = true;                                  // lo mettiamo in background altrimenti rimarrebbe bloccato sull'accept o cmq su un event.
                // è inutile ucciderlo! perchè tanto dato che resta bloccato su un evento se non gira in background da problemi.
                t.Name = "thread connessione";
                t.Start();
            }
            else
            {
                MessageBox.Show("server gia in uso", "Attenzione"); return;
            }
        }
示例#4
0
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (server != null)
            {
                Console.WriteLine("thread aborted.");
                server.terminateGracefully         = true;
                server.terminatecurrentsocket      = true;
                server.terminatecurrentsocketMouse = true;
                server.terminatecurrentsocketKeybd = true;
                server.terminatecurrentsocketPrinc = true;
                server.MouseUDPreceiveDone.Set();
                server.receiveDone.Set();
                server.KeybdreceiveDone.Set();
                server.PrincreceiveDone.Set();
                server.CloseTheSocket();

                if (server.clp.listener != null)
                {
                    server.clp.listener.Close();
                }
                server = null;
            }
        }
 public void SetServer(MyServer server)
 {
     this.server = server;
 }