powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / recv выход из цикла
25 сообщений из 178, страница 4 из 8
recv выход из цикла
    #39711140
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Я так подозреваю что все циклы и прочий "мусор" спрятаны внутри этих функций. Подобные вещи не стандартизированы, поэтому за пределами твоего Indy это не работает и надо разбираться как оно реально устроено в Indy.

Сделай WriteStrings() двух строк "123" и "abc", прими recv() все что придет, запиши в файл и выложи сюда этот файл.

Для небольших сообщений, менее 2 Кб все прекрасно работает, т.к. это сообщения помещаются в один пакет.
Проблема начинается при приеме больших сообщений, т.к. протокол разбивает их на пакеты.
Ты хочешь проблему решить или доказать что она нерешаемая? Если первое - сделай то что я попросил сделать.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711141
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSergey_rbПроблема начинается при приеме больших сообщений, т.к. протокол разбивает их на пакеты.

Да, именно так работает TCP и именно это тебе твердят с самого начала. Но до тебя никак не
доходит. Видимо, твой мозг работает по UDP.


Да не разбивает он ничего, не дури голову парню...
И так плохо с этим.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711143
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rb1. Смотрел, там сначала берется количество строк, затем они считываются.

Считываются... Во WriteStrings... Ага...

Ты, походу, совсем безнадёжен.

Sergey_rb2. Я писал, что использую протокол HTTP?
ДА. Прямо тут:
Sergey_rbискать два переноса строк подряд
Или ты не понимаешь даже то, что пишешь?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711145
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rb
Для небольших сообщений, менее 2 Кб все прекрасно работает, т.к. это сообщения помещаются в один пакет.
Проблема начинается при приеме больших сообщений, т.к. протокол разбивает их на пакеты.


Никто никуда ничего не разбивает.

ТЫ ЭТО ДЕЛАЕШЬ САМ!

Вот твой код:

Код: plaintext
1.
res = recv(sock, rbuff, sizeof(rbuff), 0);



Прочитай про третий параметр функции recv .
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711147
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbпропущено...


Для небольших сообщений, менее 2 Кб все прекрасно работает, т.к. это сообщения помещаются в один пакет.
Проблема начинается при приеме больших сообщений, т.к. протокол разбивает их на пакеты.
Ты хочешь проблему решить или доказать что она нерешаемая? Если первое - сделай то что я попросил сделать.

Запрос на сервер
автор0|CONNECT|

Получено с сервера
автор607|Подключено|
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711148
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, MasterZiv. На 99% уверен что в его Indy встроенный самопальный протокол передачи набора строк. Не зря же WriteString s ()/ReadString s ()
Осталось увидеть что там в реале идет и будет все понятно.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711150
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivSergey_rbДля небольших сообщений, менее 2 Кб все прекрасно работает, т.к. это сообщения помещаются в один пакет.
Проблема начинается при приеме больших сообщений, т.к. протокол разбивает их на пакеты.


Никто никуда ничего не разбивает.

ТЫ ЭТО ДЕЛАЕШЬ САМ!

Вот твой код:

Код: plaintext
1.
res = recv(sock, rbuff, sizeof(rbuff), 0);



Прочитай про третий параметр функции recv .

Размер буфера 10*1024, данных приходит максимум 5*1024
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711151
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Ты хочешь проблему решить или доказать что она нерешаемая? Если первое - сделай то что я попросил сделать.

Запрос на сервер
автор0|CONNECT|

Получено с сервера
автор607|Подключено|
Я это просил?
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711152
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSergey_rb2. Я писал, что использую протокол HTTP?
ДА. Прямо тут:
Sergey_rbискать два переноса строк подряд
Или ты не понимаешь даже то, что пишешь?..


Дима, ну нет же, не писал он это.
А одной пустой строкой во многих протоколах можно данные отделять (POP3 например), в том числе, в своём собственном.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711153
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbMasterZivпропущено...



Никто никуда ничего не разбивает.

ТЫ ЭТО ДЕЛАЕШЬ САМ!

Вот твой код:

Код: plaintext
1.
res = recv(sock, rbuff, sizeof(rbuff), 0);



Прочитай про третий параметр функции recv .

Размер буфера 10*1024, данных приходит максимум 5*1024

Значит, они просто не посылаются в таком объёме (10k)
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711154
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TDimitry Sibiryakov, MasterZiv. На 99% уверен что в его Indy встроенный самопальный протокол передачи набора строк. Не зря же WriteString s ()/ReadString s ()
Осталось увидеть что там в реале идет и будет все понятно.

Strings в Делфи - это набор строк, что-то вроде вектора в C++
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711157
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivSergey_rbпропущено...


Размер буфера 10*1024, данных приходит максимум 5*1024

Значит, они просто не посылаются в таком объёме (10k)

Данные могут приходит в любом объеме, начиная от одного символа.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711158
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbStrings в Делфи - это набор строк, что-то вроде вектора в C++Тайна третьей планеты- Человек - царь природы
- Только звери об этом не знают - они неграмотныеЭто я к тому, что поток байтов не в курсе про векторы, дельфи и кресты.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711159
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо
Код: plaintext
1.
2.
3.
4.
res = recv(sock, rbuff, sizeof(rbuff), 0);
FILE* f = fopen("result.bin", "wb+");
fwrite(rbuff, 1, res, f);
fclose(f);


затем result.bin выложить сюда
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711166
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima TDimitry Sibiryakov, MasterZiv. На 99% уверен что в его Indy встроенный самопальный протокол передачи набора строк. Не зря же WriteString s ()/ReadString s ()
Осталось увидеть что там в реале идет и будет все понятно.

Strings в Делфи - это набор строк, что-то вроде вектора в C++
Это пофиг. TCP - это поток байт, а какой логический смысл в этих байтах для TCP без разницы. Сделай прием короткого сообщения как я выше написал 21691688
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711168
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbпропущено...


Strings в Делфи - это набор строк, что-то вроде вектора в C++
Это пофиг. TCP - это поток байт, а какой логический смысл в этих байтах для TCP без разницы. Сделай прием короткого сообщения как я выше написал 21691688

Какой в С++ аналог ExtractFileDir(ParamStr(0))?
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711169
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНа 99% уверен что в его Indy встроенный самопальный протокол передачи набора строк. Не зря
же WriteStrings()/ReadStrings()

В моей версии инди таких функций вообще нет. Точнее они есть, но только как приватные в
FTP компонентах и они отсылают TStrings.Text как есть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711173
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему аффтар уже слился до тупого троллинга. Мастер, закрывай топик.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711175
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тот самый пакет, который принят не до конца

Код: plaintext
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.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
2|RB|PKG_TPRN|REPRINT_PACK_MVIDEO|151|10|125||
1|||ChangeDiagram|192|10|166||
1|||SetCompProp|456|1|225|MessageLabel=visible|
1|||SetCompProp|345|5|225|MessageLabel=|
1|||SetCompProp|457|10|225|Edit1=barcode|
8|RB|PKG_TERMINAL|CHECK_USER|349|12|225|Проверка пользователя  |
1|||_If|337|20|225|if user_id=0|
1|||ViewMessage|339|30|225||
1|||SetCompProp|344|35|225|ActionList.Enabled=0|
1|||_Else|343|40|225||
1|||SetCompProp|340|60|225|ActionList.Enabled=1|
1|||SetFocus|498|65|225|Edit3|
1|||GetActionList|356|70|225||
1|||GetStateRole|358|80|225||
1|||SetGlobalVar|347|95|225|USER_ID=BARCODE|
1|||ChangeState|513|100|225||
1|||_EndIf|338|120|225||
1|||SetGlobalVar|346|20|226|USER_ID=0|
1|||SetFormCaption|350|30|226||
1|||SetEditProp|375|40|226|Edit1|
1|||SetButtonProp|408|50|226|btnOK  |
1|||SetFocus|415|60|226|Edit1|
1|||SetCompProp|1504|80|226|Edit6.Unvisible|
1|||SetFormCaption|351|10|227||
1|||SetFormCaption|352|10|228|Введите номер паллеты|
1|||SetCompProp|395|20|228|Edit1.Visible=1|
1|||SetDateProp|401|30|228|DateBegin|
1|||SetDateToday|402|40|228|DateBegin.Today|
1|||SetDateProp|404|50|228|DateEnd|
1|||SetDateToday|405|60|228|DateEndToday|
1|||SetComboBoxProp|406|70|228|Список принтеров|
7|||v_reprint_mvideo|407|80|228|Список принтеров|
1|||SetCompProp|409|90|228|Edit1=''|
1|||SetFormCaption|353|10|229||
2|RB|PKG_TPRN|REPRINT_PACK_MVIDEO|354|10|230||
1|||SetFormCaption|441|10|231|Авторизирован|
1|||SetCompProp|389|20|231|Edit1.Visible=0|
1|||SetCompProp|438|30|231|Edit2.Visible=0|
1|||SetCompProp|440|40|231|Label1.Visible=0|
1|||SetCompProp|442|50|231|Label2.Visible=0|
1|||SetCompProp|443|60|231|btnOK.Visible=0|
1|||SetCompProp|439|70|231|Button2.Visible=0|
1|||SetCompProp|568|90|231|message label|
1|||SetCompProp|589|100|231|Label4.Unvisible|
1|||SetCompProp|590|110|231|Label5.Unvisible|
1|||SetCompProp|591|120|231|Edit4.Unvisible|
1|||SetCompProp|592|130|231|Edit5.Unvisible|
1|||SetCompProp|3023|150|231|Edit6.Visible=0|
1|||SetCompProp|3024|160|231|Edit7.Visible=0|
1|||SetCompProp|3025|170|231|Edit8.Visible=0|
1|||SetCompProp|3026|180|231|Edit9.Visible=0|
1|||SetCompProp|3027|190|231|ComboBox1.Visible=0|
1|||SetCompProp|3028|200|231|Label6.Unvisible|
1|||SetCompProp|3029|210|231|Label7.Unvisible|
1|||SetCompProp|3022|300|231|Edit3=Visible|
1|||SetFocus|501|310|231|Edit3|
2|RB|PKG_TPRN|REPRINT_DOC_MVIDEO|355|10|233||
1|||SetCompProp|387|5|246|MessageLabel=|
8|RB|PKG_TERMINAL|CHECK_USER|382|12|246|Проверка пользователя  |
1|||_If|376|20|246|if user_id=0|
1|||ViewMessage|378|30|246||
1|||_Else|383|40|246||
1|||SetCompProp|379|60|246|ActionList.Enabled=1|
1|||SetFocus|497|65|246|Edit3.Focused|
1|||GetActionList|380|70|246||
1|||GetStateRole|385|80|246||
1|||SetGlobalVar|3
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711176
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видно, что последняя строка выгружена не вся
Перевода строки тоже нет.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711181
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbВидно, что последняя строка выгружена не вся
Перевода строки тоже нет.
Мдя ... :(

Сложно это сделать 21691688 на маленьком сообщении? которое целиком приходит.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711184
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПо-моему аффтар уже слился до тупого троллинга. Мастер, закрывай топик.

Дайте ему шанс. Аффтар похоже просто в истерике из-за непонимания что реально происходит. Я бы посоветовал просто проспаться и утром продолжить.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711186
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbDima Tпропущено...

Это пофиг. TCP - это поток байт, а какой логический смысл в этих байтах для TCP без разницы. Сделай прием короткого сообщения как я выше написал 21691688

Какой в С++ аналог ExtractFileDir(ParamStr(0))?
Посмотри на параметры своей стартовой функци.
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711206
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey_rbВидно, что последняя строка выгружена не вся
Перевода строки тоже нет.
Мдя ... :(

Сложно это сделать 21691688 на маленьком сообщении? которое целиком приходит.

Завтра сделаю
...
Рейтинг: 0 / 0
recv выход из цикла
    #39711214
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Завтра еще поищи исходник WriteStrings(). Если это правда 21691701 , то это функция из какой-то твоей внутренней либы. Возможно досталась тебе как часть наработок твоего предприятия. Найдешь - выкладывай сюда.
...
Рейтинг: 0 / 0
25 сообщений из 178, страница 4 из 8
Форумы / C++ [игнор отключен] [закрыт для гостей] / recv выход из цикла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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