Esempio n. 1
0
        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());
                }
            }
        }
Esempio n. 2
0
        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();
                }
            }
        }