Пересылка массива double через UDP
От: _2VS  
Дата: 22.12.05 11:21
Оценка:
Пытаюсь отослать массив DOUBLE 8x100 с помощью WinSocket по протоколу UDP. Но ничего не получается. Использую команду sendto. В качестве параметра там используется указатель на char. Как мне преобразовать массив DOUBLE? Если в массиве встречается ноль, то в char он распознается как конец строки и массив обрывается. Что делать?
Re: Пересылка массива double через UDP
От: MaximE Великобритания  
Дата: 22.12.05 11:33
Оценка:
On Thu, 22 Dec 2005 11:21:22 -0000, _2VS <45048@users.rsdn.ru> wrote:

> Пытаюсь отослать массив DOUBLE 8x100 с помощью WinSocket по протоколу UDP. Но ничего не получается. Использую команду sendto. В качестве параметра там используется указатель на char.


ой-ли?

http://www.opengroup.org/onlinepubs/009695399/functions/sendto.html

ssize_t sendto(int socket, const void *message, size_t length,
        int flags, const struct sockaddr *dest_addr,
        socklen_t dest_len);


> Как мне преобразовать массив DOUBLE?


Никак, преобразование не нужно.

double arr[...] = ...;
sockaddr_in dst = ...;
ssize_t ret = sendto(fd, arr, sizeof(arr), 0, (sockaddr*)&dst, sizeof(dst));


> Если в массиве встречается ноль, то в char он распознается как конец строки и массив обрывается. Что делать?


Сокеты работают не со строками, а с бинарными данными. Отошлют столько, сколько ты указал в аргументе length.

--
Maxim Yegorushkin
Posted via RSDN NNTP Server 2.0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.