private void serverBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { if (addrssTextBox.Text == "") { createConnectionCheckBox.Checked = false; MessageBox.Show("Please enter an IP address."); } else { server = new TcpListener(IPAddress.Parse(addrssTextBox.Text.Trim(' ')), 12324); } server.Start(); this.Invoke((MethodInvoker) delegate { statusLabel.Text = "Connection created"; }); while (true) { try { ClientWorking cw = new ClientWorking(this, server.AcceptTcpClient()); stream = (NetworkStream)cw.getStream(); if (stream != null) { new Thread(new ThreadStart(cw.DoSomethingWithClient)).Start(); } }catch (Exception ex) { MessageBox.Show("At server background 214" + ex.ToString()); } } }
private void serverBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { this.Invoke((MethodInvoker) delegate { statusLabel.Text = "Connection created"; }); while (true) { if (serverBackgroundWorker.CancellationPending) { e.Cancel = true; return; } try { TcpClient c = server.AcceptTcpClient(); DialogResult res = MessageBox.Show("Do you want to allow " + ((IPEndPoint)c.Client.RemoteEndPoint).Address.ToString() + " to join?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (!(res == DialogResult.Yes)) { c.Close(); return; } ClientWorking cw = new ClientWorking(this, c); stream = (NetworkStream)cw.getStream(); if (stream != null) { new Thread(new ThreadStart(cw.interact)).Start(); this.Invoke((MethodInvoker) delegate { statusLabel.Text = ((IPEndPoint)c.Client.RemoteEndPoint).Address.ToString() + " has joined."; connectedIPs.Add(((IPEndPoint)c.Client.RemoteEndPoint).Address.ToString()); listOfConnectedRichTextBox.AppendText(((IPEndPoint)c.Client.RemoteEndPoint).Address.ToString() + "\n"); }); } }catch (Exception ex) { serverBackgroundWorker.CancelAsync(); } } }