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 YegorushkinPosted via RSDN NNTP Server 2.0