Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / TIdTCPClient??? / 3 сообщений из 3, страница 1 из 1
16.08.2007, 17:25:17
    #34733252
Aicg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TIdTCPClient???
Здравствуйте все!
Подскажите пожауйста как получить данные ртправленные сервером незная их размера при том что данные бинарные с нулевыми символами(GetCurrentReadBuffer неподходит потоиу что AnsiString)
Или как получить размер этих данных(GetCurrentReadBufferSize все время возвращает 0)
Я пробывал ReadFromStack 1й раз все отлично но потом вылетает с ошибкой что соединение было прервано программой

может я что-то не так делаю пишу на BCB6 и Delphi6 что вообщем видно из названия темы

кому нетрудно напишите пример можна для сервере ибо мне кажеться отличаться не будет

Заранее спасибо все кто ответит
...
Рейтинг: 0 / 0
28.08.2007, 11:39:58
    #34757320
Zigzag2005
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TIdTCPClient???
Можно сделать так (через API):
1. Ожидаем на select готовность на чтение
См. help
2. При появлении данных в сокете вызываем ioctl для определения доступного количества байт (если 0, то закрытие соединения)
unsigned long get_allowed_bytes(int fd)
{
unsigned long max_allowed(0);
ioctlsocket(fd, FIONREAD, &max_allowed);
return max_allowed;
}
3. Вычитываем с помощью recv
4. Обрабатываем
5. Повторяем с пункта 1
...
Рейтинг: 0 / 0
28.08.2007, 11:41:19
    #34757327
Zigzag2005
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TIdTCPClient???
Это пример функции для C++ (можно аналогичный написать и для Delphi)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / TIdTCPClient??? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]