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