Всем добрый день! Написал тестовый TCP-сервер. Нужен для тестирования программы для смартфона. Всё вроде просто, но не могу понять почему периодически не происходит дисконнект клиента. Приходится перезапускать ардуину. Ткните пожалуйста носом в косяк. Вот код: Код (C++): #include <SPI.h> #include <Ethernet2.h> // TCP Server byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //the IP address for the shield: IPAddress ip(192, 168, 8, 2); IPAddress subnet(255, 255, 255, 0); IPAddress gateway(192, 168, 8, 241); // Use TCP Port 4444 as Default EthernetServer server(4444); float randomNumber1, randomNumber2, randomNumber3; String lightings_config, floors_config; void setup() { Serial.begin(9600); Ethernet.begin(mac, ip); Serial.print("IP = "); Serial.println(Ethernet.localIP()); // начинаем слушать клиента server.begin(); // генерируем случайное число randomSeed(analogRead(0)); } void loop() { String tempst; EthernetClient client = server.available(); if (client) { Serial.println("Client Connected"); // Выполняем пока клиент соединён while (client.connected()) { // Поступили данные от клиента ? if (client.available()) { char c = client.read(); switch (c) { case 67: // "C" -> Configuration Serial.println("CR"); lightings_config = "данные 1"; floors_config = "данные 2"; tempst = String("Данные: CR$ ") + String(lightings_config) + String(", ") + String(floors_config) + String("\r\n"); Serial.println(tempst); server.print(tempst); break; case 83: // "S" -> Start Serial.println("Data 1"); randomNumber1 = random(220, 270)/10.; randomNumber2 = random(220, 270)/10.; randomNumber3 = random(220, 270)/10.; tempst = String("Данные: TR$") + String(randomNumber1) + String("|") + String(randomNumber2) + String("|") + String(randomNumber3) + String("\r\n"); server.print(tempst); break; case 69: // "E" -> End Serial.println("Data 2"); tempst = "Данные: LR$10-0|11-1|12-1\r\n"; server.print(tempst); break; case 84: // "T" -> Connection Test Serial.println("Android Test Connection"); server.print("TC&OK\r\n"); break; } } } Serial.println("Client Disconnected"); } }