Beispiel #1
0
        private void TcpReceivedAppendText(string text, Color color)
        {
            TcpReceived.SelectionStart  = TcpReceived.TextLength;
            TcpReceived.SelectionLength = 0;

            TcpReceived.SelectionColor = color;
            TcpReceived.AppendText(text);
            TcpReceived.SelectionColor = TcpReceived.ForeColor;
        }
Beispiel #2
0
 private void SendOverIP(byte[] bytes_write)
 {
     try
     {
         // Próba wysłania danych do strumienia
         clientStream.Write(bytes_write, 0, bytes_write.Length);
     }
     catch (Exception e)
     {
         client.Close();
         TcpReceived.Invoke(new Action(delegate() { TcpReceivedAppendText(e.Message, Color.Red); }));
         Connected = false;
     }
 }
Beispiel #3
0
        private void TcpReading()
        {
            byte[]     buffer_read;
            TcpClient  clientReading         = new TcpClient();
            IPEndPoint serverEndPointReading = new IPEndPoint(IPAddress.Parse(IP), Convert.ToInt32(Port));

            clientReading.Connect(serverEndPointReading);
            NetworkStream clientStreamReading = clientReading.GetStream();

            while (Connected)
            {
                try
                {
                    string Text = "";
                    buffer_read = new byte[10];
                    clientStreamReading.ReadTimeout = 100;
                    // Czytanie danych ze strumienia
                    clientStreamReading.Read(buffer_read, 0, buffer_read.Length);
                    foreach (byte c in buffer_read)
                    {
                        Text += (char)c;
                    }
                    // Odwołanie się do wątku głównego
                    TcpReceived.Invoke(new Action(delegate() { TcpReceived.AppendText(Text); }));
                }
                catch (System.IO.IOException) // Przechwycenie TimeOuta
                {
                    try
                    {
                        // Zamknięcie bieżącego połączenia
                        clientReading.Close();
                        clientReading = new TcpClient();
                        // Próba nawiązania ponownego połączenia
                        clientReading.Connect(serverEndPointReading);
                        clientStreamReading = clientReading.GetStream();
                    }
                    catch (Exception e) // Przechwycenie nie udanej próby ponownego połączenia
                    {
                        TcpReceived.Invoke(new Action(delegate() { TcpReceivedAppendText(e.Message, Color.Red); }));
                        Connected = false;
                        break;
                    }
                }
            }
        }