|
|
|
TIdTCPClient???
|
|||
|---|---|---|---|
|
#18+
Здравствуйте все! Подскажите пожауйста как получить данные ртправленные сервером незная их размера при том что данные бинарные с нулевыми символами(GetCurrentReadBuffer неподходит потоиу что AnsiString) Или как получить размер этих данных(GetCurrentReadBufferSize все время возвращает 0) Я пробывал ReadFromStack 1й раз все отлично но потом вылетает с ошибкой что соединение было прервано программой может я что-то не так делаю пишу на BCB6 и Delphi6 что вообщем видно из названия темы кому нетрудно напишите пример можна для сервере ибо мне кажеться отличаться не будет Заранее спасибо все кто ответит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 17:25:17 |
|
||
|
TIdTCPClient???
|
|||
|---|---|---|---|
|
#18+
Можно сделать так (через 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:39:58 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=280&tid=2028290]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 363ms |

| 0 / 0 |
