28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
|
|
1 | |
Сокеты, "кривые байты"17.10.2013, 00:44. Показов 890. Ответов 4
Метки нет (Все метки)
При передаче от сервера клиенту посредством ServerSocket1->Socket->Connections[0]->SendBuf(sendbuf, sendcount), где sendbuf - это массив char размерностью 255, у клиента методом Socket->ReceiveBuf(recvbuf, Socket->ReceiveLength()) часть принимается правильно, а часть почему-то имеет отрицательные значения (предположительно те, которые больше 100). В чём может быть проблема?
0
|
17.10.2013, 00:44 | |
Ответы с готовыми решениями:
4
Сокеты и клиент-сервер приложение, как отправлять/принимать байты Написать программу, которая бы считывала из входного файла байты с N1 по N2 и с N3 по N4 и записывала эти байты в выходной файл Декодировать байты (в base64) в просто байты Php сокеты и unix-сокеты |
Ушел с форума
|
|
17.10.2013, 09:27 | 2 |
Видимо в том, что буфер при передаче режется на куски и вычитывать его
нужно в несколько вызовов ReceiveBuf.
0
|
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
|
|||||||||||
19.10.2013, 16:49 [ТС] | 3 | ||||||||||
Убежденный,
на клиенте я делаю так:
На сервере делаю так:
0
|
Ушел с форума
|
|
19.10.2013, 17:39 | 4 |
Для клиент-серверного приложения код весьма эм... необычный.
Кстати, почему сервер передает sendcount = 6, хотя в действительности он пишет 7 байт, а не 6 ? И почему чтение из сокета идет по одному байту ? Это ведь жутко неэффективно.
0
|
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
|
|
19.10.2013, 19:32 [ТС] | 5 |
мне кажется, не принципиально. уровень-то прикладной, так что смысл байтов ровно такой, какой сам им придашь. я как бы имел в виду количество информативных байт, хотя можно и общих.
до этого было Socket->ReceiveBuf(recvbuf, Socket->ReceiveLength()); но результат один. и теперь ещё хардкорнее сделал: на сервере несколько вызовов ServerSocket1->Socket->Connections[0]->SendBuf(ch, 1); и клиент подсчитывает возникающие события. Зато теперь гарантированно работает (кроме последнего байта в sendbuf, видимо холостым его надо делать). Добавлено через 2 минуты Необычность кстати не только в этом клиент выполняет две задачи: мониторит загрузку ЦП сервака и даёт команду на извлечение информации о процессах, которую тот в ответ будет пересылать Добавлено через 19 минут Убежденный, не, рано обрадовался.. опять отрицательные >: Добавлено через 1 час 13 минут Ошибка была в использовании char вместо unsigned char...
0
|
19.10.2013, 19:32 | |
19.10.2013, 19:32 | |
Помогаю со студенческими работами здесь
5
Кривые на С++ Кривые гильберта Кривые Серпинского Кривые Безье Кривые Безье Найти кривые Кривые ip-адреса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |