передаю команду на ардуину из компьютера (запрос из 2 байт) ардуина этот код принимает и отправляет ответ (19 байт) ответ содержит айпи адрес ардуины, код ответа (2 байта) и 8 байт данных ответа. компьютер пакет принимает той же длины, что и отправлялось, но.... часть пакета после айпи адреса и кода отправки, то верная, то нет (сравнение по составу пакета). как такое может быть? Код (C++): if (client) { if (client.connected()) { if (client.available()) { size_t InBufLenght = client.available(); byte buf[InBufLenght]; byte buf2[20]; int y = client.read(buf, InBufLenght); //server.write(1,1); delay(20); Serial.print("Получил пакет "); if (buf[0] == 138 && buf[1] == 164) // { Serial.println("поступил запрос"); //uint8_t Abuf[15]; for (int q = 0; q < 4; q++) buf2[q] = myip[q]; buf2[4] = 34; buf2[5] = 52; //Serial.println(gra_oborot); IntToHEX(gra_oborot); for (int q = 0; q < 4; q++) buf2[q + 6] = DataSl[q]; //Serial.println(him_oborot); IntToHEX(him_oborot); for (int q = 0; q < 4; q++) buf2[10 + q] = DataSl[q]; for (int q = 0; q < 20; q++) { Serial.print(buf2[q]); if (q < 19) Serial.print(";"); else Serial.println(""); } server.write(buf2, 20); delay(50); for (int i = 0; i < 20; i++) { buf2[i] = i; } server.write(buf2, 20); for (int q = 0; q < 20; q++) { Serial.print(buf2[q]); if (q < 19) Serial.print(";"); else Serial.println(""); } server.write(buf2, 20); /* udp.beginPacket(udp.remoteIP(), 355);//Udp.remotePort() udp.write(Abuf, 15); udp.endPacket();*/ Serial.println("ответ отправлен"); } else void IntToHEX(uint32_t x) { DataSl[0] = x & 0xFF; DataSl[1] = (x >> 8) & 0xFF; DataSl[2] = (x >> 16) & 0xFF; DataSl[3] = (x >> 24) & 0xFF; }