Здравствуйте! Я начинающий в шилде Ethernet Shield W51000. У меня стоит задача отправить данные на сервер, который находится на удаленном хостинге, и принять данные с него. Я нашел только один способ. На сервере у меня находится html код, которых содержит данные для передачи на ардуино и в тоже время принимает данные, которые отправляет ардуино. У меня это получилось, но есть одна проблема: как преобразовать тип байт(html код) в тип string, чтобы в дальнейшем убрать ненужные символы и занести необходимые данные в массив. Короче, мне нужно редактировать полученный html код, но он идет с типом. По сути нужно сделать обычный парсер. Byte. Возможно есть и другие способы. Это надо решить как можно быстрее, и я буду очень благодарен, если поможете решить проблему или найти другое решение. Вот код: Код (C++): #include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; char server[] = "niktech.site"; IPAddress ip(192, 168, 0, 177); EthernetClient client; unsigned long beginMicros, endMicros; unsigned long byteCount = 0; bool printWebData = true; // set to false for better speed measurement void setup() { Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } // start the Ethernet connection: Serial.println("Initialize Ethernet with DHCP:"); if (Ethernet.begin(mac) == 0) { //1-удачное, 0-неудачное соединение Serial.println("Failed to configure Ethernet using DHCP"); // Check for Ethernet hardware present if (Ethernet.hardwareStatus() == EthernetNoHardware) { //существует ли интернет шилд Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :("); while (true) { delay(1); // do nothing, no point running without Ethernet hardware } } if (Ethernet.linkStatus() == LinkOFF) { //LinkOFFэто может означать, что кабель Ethernet отключен или неисправен Serial.println("Ethernet cable is not connected."); } // try to congifure using IP address instead of DHCP: Ethernet.begin(mac, ip); } else { Serial.print(" DHCP assigned IP "); Serial.println(Ethernet.localIP()); //возвращает IP адрес } // give the Ethernet shield a second to initialize: delay(1000); Serial.print("connecting to "); Serial.print(server); Serial.println("..."); // if you get a connection, report back via serial: if (client.connect(server, 80)) { //если прошло соединение Serial.print("connected to "); Serial.println(client.remoteIP()); //возвращает IP адрес удаленного соединения // Make a HTTP request: client.println("GET /test?t=28 HTTP/1.1"); client.println("Host: niktech.site"); client.println("Connection: close"); client.println(); } else { // if you didn't get a connection to the server: Serial.println("connection failed"); } beginMicros = micros(); //Возвращает количество микросекунд, прошедших с момента начала выполнения программы } void loop() { // if there are incoming bytes available // from the server, read them and print them: int len = client.available(); //количество байт, принятых клиентом от удаленного сервера, с которым установлено соединение if (len > 0) { byte buffer[100]; if (len > 100) len = 100; client.read(buffer, len); //считывает очередной байт из набора данных, принятых клиентом от удаленного сервера. if (printWebData) { Serial.println("next"); Serial.write(buffer, len); // show in the serial monitor (slows some boards) } byteCount = byteCount + len; //кол-во байт } // if the server's disconnected, stop the client: if (!client.connected()) { endMicros = micros(); Serial.println(); Serial.println("disconnecting."); client.stop(); Serial.print("Received "); Serial.print(byteCount); Serial.print(" bytes in "); float seconds = (float)(endMicros - beginMicros) / 1000000.0; Serial.print(seconds, 4); float rate = (float)byteCount / seconds / 1000.0; Serial.print(", rate = "); Serial.print(rate); Serial.print(" kbytes/second"); Serial.println(); // do nothing forevermore: while (true) { delay(1); } } } Я прокомментировал каждую строчку, которую я не понял.