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"); } }
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; } }
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; } }
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; }