|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Это стандартные функции INDY ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 19:59 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TНа 99% уверен что в его Indy встроенный самопальный протокол передачи набора строк. Не зря же WriteStrings()/ReadStrings() В моей версии инди таких функций вообще нет. Точнее они есть, но только как приватные в FTP компонентах и они отсылают TStrings.Text как есть. Судя по всему, у ТС 9-я версия, там это есть, да и в доках к лазарусу сказано, что у них 9-я. WriteStrings Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
WriteInteger Код: pascal 1. 2. 3. 4. 5. 6. 7.
Writeln Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
Write Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9.
Ну и вот самое интересное: WriteBuffer(). WriteBuffer Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52.
... Т.е., при отправлении блока строк (из объекта TStrings) сперва (возможно) отправляется количество строк. Потом - каждая строка, дополненная cr+lf. В каждом "отправлении" (при вызове метода WriteBuffer) физически сперва передается длина блока данных, потом - сам блок. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 20:31 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Да, у меня 9 версия INDY. авторВ каждом "отправлении" (при вызове метода WriteBuffer) физически сперва передается длина блока данных, потом - сам блок. Вот только функция recv эту длину почему-то не видит, а выдает размер принятого пакета. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 21:09 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Sergey_rbВот только функция recv эту длину почему-то не видит Ей это и не надо. Это функция транспортного уровня, она принимает простой поток байт. До протоколов уровня приложения ей дела нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 21:14 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovSergey_rbВот только функция recv эту длину почему-то не видит Ей это и не надо. Это функция транспортного уровня, она принимает простой поток байт. До протоколов уровня приложения ей дела нет. Тогда должна быть другая функция, которая работает на уровне протокола. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 21:53 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Sergey_rbТогда должна быть другая функция, которая работает на уровне протокола. Да. И это, внезапно, ReadStrings из INDY. Потому что протокол не зря называется "уровня приложения". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 22:05 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
КотовасияТ.е., при отправлении блока строк (из объекта TStrings) сперва (возможно) отправляется количество строк. Потом - каждая строка, дополненная cr+lf. В каждом "отправлении" (при вызове метода WriteBuffer) физически сперва передается длина блока данных, потом - сам блок. Осталось увидеть дамп принятого сообщения 21691688 и все станет понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 08:15 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Первое сообщение автор607|192.168.96.204|Подключено| Заканчивается переводом строки 13 10 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 08:36 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Вот это более правильное сообщение, заканчивается двумя переводами строки Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 08:39 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovSergey_rbТогда должна быть другая функция, которая работает на уровне протокола. Да. И это, внезапно, ReadStrings из INDY. Потому что протокол не зря называется "уровня приложения". Никто и не просит функцию recv выдавать форматированный текст, ее задача вытащить все данные из сокета, с которой она справляется, но не всегда... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 08:41 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Sergey_rbНикто и не просит функцию recv выдавать форматированный текст, ее задача вытащить все данные из сокета, с которой она справляется, но не всегда... recv() работает совсем не так как ты ожидаешь. PS Дамп будет 21691688 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 08:48 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Dima TSergey_rbНикто и не просит функцию recv выдавать форматированный текст, ее задача вытащить все данные из сокета, с которой она справляется, но не всегда... recv() работает совсем не так как ты ожидаешь. PS Дамп будет 21691688 ? Я же выложил ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 08:54 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Sergey_rbЯ же выложил Где result.bin ? Если ты думаешь что копипаст содержимого сообщений это то что мне интересно, то ты ошибаешься, ты скопипастил только ненужную инфу. Надо все принятое с точностью до байта записать в файл, и файл сюда выложить. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 09:07 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Dima TSergey_rbЯ же выложил Где result.bin ? Если ты думаешь что копипаст содержимого сообщений это то что мне интересно, то ты ошибаешься, ты скопипастил только ненужную инфу. Надо все принятое с точностью до байта записать в файл, и файл сюда выложить. Предварительно, я посмотрел HEX этого файла Он заканчивается двумя переводами строк ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 09:15 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Котовасия... Т.е., при отправлении блока строк (из объекта TStrings) сперва (возможно) отправляется количество строк. Потом - каждая строка, дополненная cr+lf. В каждом "отправлении" (при вызове метода WriteBuffer) физически сперва передается длина блока данных, потом - сам блок. А нафига ты такое исследование провёл, и так же очевидно было, что так должно было быть... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 11:34 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Sergey_rbДа, у меня 9 версия INDY. авторВ каждом "отправлении" (при вызове метода WriteBuffer) физически сперва передается длина блока данных, потом - сам блок. Вот только функция recv эту длину почему-то не видит, а выдает размер принятого пакета. Мля, ПОТОМУ ЧТО ТЫ ЕГО ЗАДАЁШЬ НА ВХОДЕ recv! ЗАДАВАЙ БОЛЬШЕ! ОНО БУДЕТ ТЕБЕ ВЫДАВАТЬ БОЛЬШЕ! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 11:35 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Sergey_rb ... И если мне кто-то ещё посмеет возразить, что Pascal, Delphi неисправимо калечат людям мозг, то я просто дам ссылку на этот топик... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 11:38 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
MasterZivSergey_rbДа, у меня 9 версия INDY. пропущено... Вот только функция recv эту длину почему-то не видит, а выдает размер принятого пакета. Мля, ПОТОМУ ЧТО ТЫ ЕГО ЗАДАЁШЬ НА ВХОДЕ recv! ЗАДАВАЙ БОЛЬШЕ! ОНО БУДЕТ ТЕБЕ ВЫДАВАТЬ БОЛЬШЕ! Насколько больше? В два раза достаточно? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 12:09 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
MasterZivSergey_rb ... И если мне кто-то ещё посмеет возразить, что Pascal, Delphi неисправимо калечат людям мозг, то я просто дам ссылку на этот топик... Что доказывает поговорку: авторопытный программист С++ с легкостью может решить проблему, не существующую в Delphi ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 12:14 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
И подтверждает, что опытный программист Дельфи не может решить проблему, возникающую в Дельфи. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 12:26 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovИ подтверждает, что опытный программист Дельфи не может решить проблему, возникающую в Дельфи. К счастью, я не опытный программист Дельфи, и, поэтому, у меня проблем в Дельфи не возникает. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 12:32 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Sergey_rbК счастью, я не опытный программист Дельфи, и, поэтому, у меня проблем в Дельфи не возникает. Тогда зачем ты здесь пытаешься использовать recv() вместо ReadStrings() там? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 12:35 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovSergey_rbК счастью, я не опытный программист Дельфи, и, поэтому, у меня проблем в Дельфи не возникает. Тогда зачем ты здесь пытаешься использовать recv() вместо ReadStrings() там? Потому что прога, написанная в Лазарусе, не работает под WinCe7. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 12:48 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Sergey_rb у меня проблем в Дельфи не возникает. Sergey_rbПотому что прога, написанная в Лазарусе, не работает под WinCe7. Это либо не проблема, либо кто-то совсем не умеет в логику. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 12:52 |
|
recv выход из цикла
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovSergey_rb у меня проблем в Дельфи не возникает. Sergey_rbПотому что прога, написанная в Лазарусе, не работает под WinCe7. Это либо не проблема, либо кто-то совсем не умеет в логику. А вы в этом профи. Только что-то никто из вас так и не написал функцию, получающую данные из сокета, не закрывая сокета. Развели флуда на 5 страниц. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 13:01 |
|
|
start [/forum/topic.php?fid=57&msg=39711253&tid=2017750]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 164ms |
0 / 0 |