я вас спросил - что показывает параметр size и что пришло?
А я ответил - в size - ноль.
в size - ноль?
Это при отсылке массива char?
Тогда вы все врете и у вас ничего не работает, поскольку ваш код при нулевом размере ничего бы не печатал.
Слушайте, это кому надо - вам или нам? Хотите помощи - отвечайте на вопросы четко и развернуто, а не чтобы только отвязались.
Вы пока пишете какую-то бессмыслицу. Если код работает с массивом char - он должен работать и с флоат, указатель на который приведен к символьному типу.
Вывод - вы где-то накосячили и надо найти где.
Так что еще раз спрашиваю - при такой пересылке
char fbuf[] = "ABC";
UDPServer->SendBuffer(“192.168.254.10”, 2000, fbuf, 4);
какой размер size возвращает приемник и что точно приходит?
ЗЫ а не хотите нормально разговаривать - так и скажите, не буду на вас время тратить.
Про size вы спрашивали в связи с отправкой flot’а. Когда отправляю ABC, получаю size = 3. Я вам ответил: “Так пробовал - все работает”.
Не надо так нервничать. Вас никто не обязывает меня консультировать.
Я уточню - отправляете строкой с явным указанием размера 4
и получаете на выходе 3?
Вы точно строку отправки не меняли и в ней стоит 4? Отвечайте четко, пожалуйста
Я использовал UDPServer->SendBuffer(“192.168.254.10”, 2000, buf, 3);
а что еще вы меняли?
Слушайте, по разговору очевидно, что в программировании вы совсем не гуру. Так почему вы не делаете то, что вам говорят? К чему эти поправки, если вы явно не понимаете их смысла?
Ладно, я пас…разбирайтесь сами
Буду краток.
Если пользоваться библиотекой IdUDPServer и делать так:
fbuf[0] = 789;
UDPServer->SendBuffer(“192.168.254.10”, 2000, fbuf, 4);
то не работает.
А если делать так:
BYTE *Bbuf;
float fbuf[1];
fbuf[0] = 789;
Bbuf = (BYTE*)&fbuf[0];
UDPServer->SendBuffer(“192.168.254.10”, 2000, Bbuf, 4);
то все работает.
Может быть, кому-то, кто пишет под Borland’ом / Embarcadero, это пригодится.
А ведь у всех новичков висит объявление, как правильно вставлять код в сообщения. И хоть бы кто из них хоть раз прочитал…
Да, поправил.
Интересно, чем “правильное решение” ТС отличается от того, что предложил Садман
наверно тогда ТС поленился правильно скопировать или что-то от себя добавил, вот и не сработало…
Переведи в строку и передавай. По-другому это работать не будет, потому что физический формат данных на разных процессорах разный.
А что, IEEE 754 уже не действует?
На float - не обязан действовать. Как и на выравнивание, например.