Пример #1
0
        private void TransferData(object arg)
        {
            ThreadProcParams tpp        = arg as ThreadProcParams;
            int    port                 = tpp.port;
            string host                 = tpp.host;
            RefreshFormDelegate refresh = new RefreshFormDelegate(RefreshStats);

            while (true)
            {
                TcpClient     clientProxy = null;
                TcpListener   listener    = null;
                TcpClient     clientReal  = null;
                NetworkStream nsProxy     = null;
                NetworkStream nsReal      = null;
                try
                {
                    clientProxy = new TcpClient(host, 80);
                    listener    = new TcpListener(IPAddress.Any, port);
                    nsProxy     = clientProxy.GetStream();
                    listener.Start();
                    clientReal = listener.AcceptTcpClient();
                    nsReal     = clientReal.GetStream();
                    int    bufSize     = 1024;
                    byte[] buf         = new byte[bufSize];
                    int    charsReaded = bufSize;
                    do
                    {
                        Thread.Sleep(100);
                        charsReaded = nsReal.Read(buf, 0, bufSize);
                        nsProxy.Write(buf, 0, charsReaded);
                        upTraf += charsReaded;
                    }while (nsReal.DataAvailable);
                    charsReaded = bufSize;
                    do
                    {
                        Thread.Sleep(100);
                        charsReaded = nsProxy.Read(buf, 0, bufSize);
                        nsReal.Write(buf, 0, charsReaded);
                        downTraf += charsReaded;
                        this.Invoke(refresh);
                    }while (nsProxy.DataAvailable);
                    listener.Stop();
                    clientProxy.Close();
                    clientReal.Close();
                }
                catch
                {
                    try
                    {
                        listener.Stop();
                        nsProxy.Close();
                        nsReal.Close();
                        clientProxy.Close();
                        clientReal.Close();
                    }
                    catch { }
                }
            }
        }
Пример #2
0
 public void RefreshForm()
 {
     RefreshFormDelegate refresh = new RefreshFormDelegate(form.redrawAll);
       while ((Thread.CurrentThread.ThreadState & ThreadState.Running)
     == ThreadState.Running) {
       try {
     form.Invoke(refresh);
       } catch (Exception e) {
     String x = e.Message; // damit keine Warnung kommt
       }
       Thread.Sleep(20);
       }
 }
Пример #3
0
        void RefreshForm(double[] dvals)
        {
            if (this.InvokeRequired)
            {
                RefreshFormDelegate d = new RefreshFormDelegate(RefreshForm);
                this.Invoke(d, new object[] { dvals });
            }
            else
            {
                using (Graphics g = Graphics.FromImage(this.BackgroundImage))
                {
                    int segmentWidth = (this.Width / dvals.Length) / 2 + 1;
                    g.FillRectangle(Brushes.Black, this.Bounds);
                    for (int i = 0; i < dvals.Length; i++)
                    {
                        double dval = dvals[i];
                        try { dval *= scalingValues[i]; } catch (Exception) { }
                        int val = (int)dval;
                        Color c = Color.Blue;
                        if(val < 256)
                            c = Color.FromArgb(0, 0, val);
                        else if (val >= 256)
                        {
                            int lightVal = val - 255;
                            if(lightVal>255)
                                lightVal = 255;
                            c = Color.FromArgb(lightVal, lightVal, 255);
                        }

                        LinearGradientBrush b = new LinearGradientBrush(new Point(0, 0), new Point(segmentWidth, 0), Color.Black, c);
                        LinearGradientBrush b2 = new LinearGradientBrush(new Point(segmentWidth, 0), new Point(segmentWidth * 2, 0), c, Color.Black);
                        int x0 = segmentWidth * i * 2;
                        int x1 = segmentWidth * i * 2 + segmentWidth;
                        g.FillRectangle(b, x0, 0, segmentWidth, this.Height);
                        g.FillRectangle(b2, x1, 0, segmentWidth, this.Height);
                    }
                }
                this.Refresh();
            }
        }