Ethernet shield прием пакета с клиента
- Войдите на сайт для отправки комментариев
Чт, 10/05/2012 - 17:21
В общем я не могу раскурить получение пакета!
EthernetClient client = server.available();
if(client)
{
Serial.println("New client");
}
client.read(); //и тут затык
Я отправляю пакет состоящий из первые 4 байта int, который обозаначает длину строки, и далее string строка. Как мне принять этот пакет байтов и присвоить int dlina - первые 4 байта, string str - остальные, в зависимости от dlina? Или какое решение сюда подойдет? Клиент может слать только байтовый пакет, решение типо отправить готовый int и string не подойдет. Спасибо!
Разобрался с вопрсом! Если кому интересно пишите, тогда в теме выложу решение!
Выкладывайте конечно. Всегда интересно посмотреть решение. Спасибо.
//С клиента шлем пакет состоящий из int и string длиной int char str[128]; char myint[128]; client.readBytes(myint,4); //читаем 4 байта которые наш int int i = *(int *) myint; //присваиваем таким хитрым способом инту Serial.print(i); client.readBytes(str,i);//считываем i байтов наш string for(int i2 = i; i2 < 128; i2++) { str[i2] = NULL; //остальные набиваем null иначе получим кашу } Serial.print(str); //вот наш стринг