Прошу всех,кто может,помогите горю!Очень важно!
Этот топик читают: Гость
Ответов: 19
Рейтинг: 0
|
|||
карма: 0 |
|
Ответов: 397
Рейтинг: 34
|
|||
Помогаю...
Помог? |
|||
карма: 0 |
|
Ответов: 19
Рейтинг: 0
|
|||
Привожу часть кода.Суть в том,что по приёму в порт сервера одновременно приходит до 1500 сообщений вида
------------ Дoбавленo в 20.30: Блин!У меня никак не хочет постить!!Второй день мучаюсь,поэтому привожу частями...5 мин... ------------ Дoбавленo в 20.30: 000000001;20110225193405;901;100000003 ------------ Дoбавленo в 20.31: Мне необходимо перебирать строку,чтобы отделить сообщение от сообщения. ------------ Дoбавленo в 20.32: Но почему-то не только максимальное количество частей строки 206(205 в первый раз), ------------ Дoбавленo в 20.33: но и при этом ещё последняя часть "рвётся" на 206 и 1.....Ничего понять не могу!! ------------ Дoбавленo в 20.34: Может что-то в исходнике нужно поменять?Для наглядности происходящего прикрепляю файл с логом... ------------ Дoбавленo в 20.36: Помогите пожалуйста!!!..Прошу простить за оффтоп,но почему на этот форум больше 1 строки в пост не лезет?! ------------ Дoбавленo в 20.37: я даже код не могу залить! уже с шестого компа и с третьего провайдера((( ------------ Дoбавленo в 20.44:
привожу только проблемные куски лога: ------------ Дoбавленo в 20.50: ........ Part200 -> 000012975;20110225192513;901;100000200 Part204 -> 000012979;20110225192513;901;100000204 Part205 -> 000012980;20110225192513;901;100 Part1 -> 000205 Part2 -> 000012981;20110225192513;901;100000206 ....... ------------ Дoбавленo в 20.51: ....... Part205 -> 000013184;20110225192515;901;100000409 Part206 -> 000013185;20110225192515 Part1 -> ;901;100000410 Part2 -> 000013186;20110225192515;901;100000411 ........... ------------ Дoбавленo в 20.51: ........... Part205 -> 000013389;20110225192517;901;100000614 Part206 -> 000013390;201102 Part1 -> 25192517;901;100000615 Part2 -> 000013391;20110225192517;901;100000616 ......... ------------ Дoбавленo в 20.52: Причём после закрытия программы выдаёт: runtime error 216 at $004224a8 ------------ Дoбавленo в 20.52: Может рантайм еррор и по другому поводу,но на всякий случай.. |
|||
карма: 0 |
|
Ответов: 301
Рейтинг: 11
|
|||
карма: 0 |
| ||
файлы: 1 | code_22704.txt [860B] [577] |
Ответов: 16884
Рейтинг: 1239
|
|||
Ну и при чем здесь Str_Enum Оно там вообще лишнее
|
|||
карма: 25 |
|
Ответов: 19
Рейтинг: 0
|
|||
evgenyatam писал(а): по удалял лишнее и облагородил.------------ Дoбавленo в 23.19: Спасибо большое!Так и не понятно,почему я не смог самостоятельно этого сделать.Что за глюк такой?Может тут ------------ Дoбавленo в 23.19: ограничения на длину сообщения для новичков есть? ------------ Дoбавленo в 23.19: Жаль,что никто пока ничего не предложил..Вопрос для меня очень важный..Очень... |
|||
карма: 0 |
|
Ответов: 301
Рейтинг: 11
|
|||
лишнее в смысле комментариев форума. а так схема принципиально не менялось
------------ Дoбавленo в 23.23: Provodnik писал(а): ограничения на длину сообщения для новичков есть?нету. просто у некоторых форум нормально отправляет, у некоторых - замедленно. и у совсем несчастных - тормозит безбожно. |
|||
карма: 0 |
|
Ответов: 19
Рейтинг: 0
|
|||
Почему?Без него-никак!!!Поймите,это только мизерная часть кода!!!И эта часть отображает глюк.Если приводить
------------ Дoбавленo в 23.25: всю схему,то станет понятно,что в дальнейшем это сообщение разбивается на части и помещается в SQL.И то,что ------------ Дoбавленo в 23.25: если не делать перебор,в редакторе текста новая строка всё равно сама поставится,но при этом дальнейшее ------------ Дoбавленo в 23.25: деление сообщения на части будет некорректным, ------------ Дoбавленo в 23.25: т.к сообщения не всегда одинаковы по количеству составляющих. ------------ Дoбавленo в 23.32: evgenyatam писал(а): нету. просто у некоторых форум нормально отправляет, у некоторых - замедленно. и у совсем
------------ Дoбавленo в 23.32: несчастных - тормозит безбожно. ------------ Дoбавленo в 23.32: И это при 6 мегабит в секунду дома,24-х мегабитах на работе,при вариантах ХР-шки с сервис-паками 2 и 3,7-ки ------------ Дoбавленo в 23.32: ультимейт и профешнл,браузеров Оперы,Макстона,Эксплорера,Файерфокса в различных сочетаниях с ОСью,после ------------ Дoбавленo в 23.32: переустановок Явы...Ну ладно,на работе на прокси местный грешил...А дома-то чего???До сих пор по строчке пишу(((( |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Provodnik, судя по всему лог должен выглядеть так:
правильно ? Почему он рвется? StrEnum тут совершенно не при чем. |
|||
карма: 25 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Tad писал(а): Почему он рвется?Если лог передается одним файлом, то проблема, скорее всего, в размере TCP окна, после достижения предела которого, соединение считается уже следующей сессией |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
файлы: 1 | code_22706.txt [1.2KB] [497] |
Ответов: 19
Рейтинг: 0
|
|||
Tad писал(а): правильно ?
Почему он рвется? StrEnum тут совершенно не при чем. ------------ Дoбавленo в 00.05: Почти правильно...Часть 2 должна быть 1,а 206 правильно.Если енум тут не при чём,то в чём же дело?До 205 ------------ Дoбавленo в 00.06: сообщений всё нормально передаётся.. ------------ Дoбавленo в 00.06: nesco писал(а): Если лог передается одним файлом, то проблема, скорее всего, в размере TCP окна, после
------------ Дoбавленo в 00.06: достижения предела которого, соединение считается уже следующей сессией ------------ Дoбавленo в 00.06: Вы не могли бы поподробнее?Как можно увеличить это окно в хиасме?Или Вы считаете,что клиент,передающий 1500 ------------ Дoбавленo в 00.06: сообщений за раз,косячит из-за того,что в нём плохо настроено то самое окно?Я программёр ------------ Дoбавленo в 00.07: посредственный,поэтому прошу растолковать пожалуйста.Пока мой удел-язык Си для WinCC,да SQL... |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Provodnik, это может быть и не окно, а что-то еще. К примеру, такое я наблюдал у одного сотового провайдера, он накапливал различные мои сообщения до определенного порога, и затем он рвал сессию, разбивая мое последнее сообщение и приклеивая остаток к следующей порции данных.
Средствами HiAsm-a изменить параметры провайдеров не получится, тут надо использовать специальные изощрения, типа буфера накопления из которого вытаскивать кратные данные, а некратные оставлять, и дальнейшее накопление приклеивать к оставшимся данным. Это мысли вслух, и только предположение. |
|||
карма: 22 |
|
Ответов: 19
Рейтинг: 0
|
|||
Tad писал(а): без StrEnum.------------ Дoбавленo в 00.19: Боюсь,что Вы недопоняли цели и задачи...В вашей схеме я не вижу сервер или что-то подобное.Кроме того,вы ------------ Дoбавленo в 00.19: преобразуете то,что я показал только для наглядности!!!Само сообщение,приходящее в порт я описал ДО лога.Лог ------------ Дoбавленo в 00.19: для того,чтобы понять,что на самом деле происходит!!!Формат сообщения,приходящего в порт ------------ Дoбавленo в 00.19: 000000001;20110225193405;901;100000003 ------------ Дoбавленo в 00.19: И мне нужно перебором отделить сообщение от сообщения(разделитель ),потом поделить сообщение на части ------------ Дoбавленo в 00.19: (разделитель уже ; 000000001-номер сообщения клиента,20110225193405-дата и время,901-тип,100000003-номер ------------ Дoбавленo в 00.20: сообщения сервера) и потом эти части использовать.Лог-ДЛЯ ДИАГНОСТИКИ!!!! ------------ Дoбавленo в 00.20: Мне схему всю здесь выложить очень сложно,поэтому если не затрудню,можно Ваш мейл или асю?! ------------ Дoбавленo в 00.20: Скину,тогда может быть будет более понятно.. |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Provodnik, могу посоветовать проверять валидность длины посылки, если она не кратная дождаться следующей части, но это все надо делать через буфер приема
|
|||
карма: 22 |
|