Вверх ↑
Этот топик читают: Гость
Ответов: 19
Рейтинг: 0
#16: 2011-02-27 00:24:48 ЛС | профиль | цитата
nesco писал(а):
специальные изощрения, типа буфера накопления из которого вытаскивать кратные данные, а
------------ Дoбавленo в 00.24:
некратные оставлять, и дальнейшее накопление приклеивать к оставшимся данным. Это мысли вслух, и только
------------ Дoбавленo в 00.24:
предположение.


------------ Дoбавленo в 00.24:
Я уже почти смирился,что это придётся сделать...Но понадеялся,что можно устранить причину,а не
------------ Дoбавленo в 00.24:
следствие.Иначе программа усложняется в разы.А это нежелательно....
карма: 0

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#17: 2011-02-27 00:29:59 ЛС | профиль | цитата
Provodnik, а ты, случаем, не через того же провайдера на форум сообщения отправляешь, через которого получаешь данные на свой TCP сервер
карма: 22

0
Ответов: 19
Рейтинг: 0
#18: 2011-02-27 00:40:00 ЛС | профиль | цитата
nesco писал(а):
Provodnik, а ты, случаем, не через того же провайдера на форум сообщения отправляеш, через
------------ Дoбавленo в 00.38:
которого получаешь данные на свой TCP сервер


------------ Дoбавленo в 00.38:
Нет История длинная и запутанная.По сути я только принимаю.Есть готовая прога,под которую я
------------ Дoбавленo в 00.39:
подстраиваюсь.Она шлёт мне в порт сообщения.Я их обрабатываю,помещаю в SQL(OLE) и потом использую при помощи
------------ Дoбавленo в 00.39:
Си.Этот глюк присходит и в случае,если прога шлёт сообщения через локалку и в случае,если прога-
------------ Дoбавленo в 00.39:
клиент,посылающая сообщения на той же машине,что и мой сервер,принимающий сообщения.
------------ Дoбавленo в 00.39:
Причём это происходит на работе(сейчас я дома).У меня только 2 варианта.Либо готовый клиент глючит
------------ Дoбавленo в 00.39:
(написан,кстати, испанцами на JAVA), либо проблема в хиасме(енум или сервер непосредственно).Причём если
------------ Дoбавленo в 00.39:
сообщений меньше 200,енум их делит,например,не на 206,а на 87...
карма: 0

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#19: 2011-02-27 00:54:32 ЛС | профиль | цитата
Provodnik писал(а):
либо проблема в хиасме(енум или сервер непосредственно)

А проверить-то легко, достаточно вывести твои сообщения в ListBox по Add, если рвется, то виновато все, что угодно, но не Str_Enum, да сервер тут не при чем. У тебя Str_Enum разбивает по [b]
[/b] (кстати, в новых версиях это не поддерживается, только по одному символу может разбивать), возможно, не всегда передаются [b]
[/b] в нужном месте, а возможно, у тебя обновленный компонент, где не поддерживается разбиение по строке, а [b]
[/b] уже не символ, а строка
карма: 22

0
Ответов: 19
Рейтинг: 0
#20: 2011-02-27 01:06:27 ЛС | профиль | цитата
nesco писал(а):
А проверить-то легко, достаточно вывести твои сообщения в ListBox по Add, если рвется, то
------------ Дoбавленo в 01.04:
виновато все, что угодно, но не Str_Enum, да сервер тут не при чем. У тебя Str_Enum разбивает по

------------ Дoбавленo в 01.05:
(кстати, в новых версиях это не поддерживается, только по одному символу может разбивать), возможно, не
------------ Дoбавленo в 01.05:
всегда передаются
в нужном месте


------------ Дoбавленo в 01.05:
А о каких новых версиях идёт речь?у меня 4.4...А
предаются всегда где нужно.Это если верить
------------ Дoбавленo в 01.05:
просмотрщику исходящих сообщений в испанской проге.Там непечатаемые символы всегда отображаются.
------------ Дoбавленo в 01.05:
Я сверял,в том просмотрщике всё гуд.. Нужно действительно попробовать вывести прямо с порта на
------------ Дoбавленo в 01.06:
текст...Но..Я сомневаюсь,что так уже не пробовал..Неделю бьюсь методом тыка...О чём может говорить тот
------------ Дoбавленo в 01.06:
случай,когда до енума рвётся и о чём,когда после?
------------ Дoбавленo в 01.06:
Нужно до понедельника накопить максимум вариантов и сразу всё проверить...
карма: 0

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#21: 2011-02-27 01:23:36 ЛС | профиль | цитата
Provodnik писал(а):
О чём может говорить тот случай,когда до енума рвётся и о чём,когда после?

Если рвется "до", то проблема может быть, и в провайдере, и в системе. А вот для этих целей, я бы не советовал использовать Str_Enum, желательно использовать что-то типа StrList-a и считывать с точки массива
карма: 22

0
Ответов: 19
Рейтинг: 0
#22: 2011-02-27 06:08:48 ЛС | профиль | цитата
nesco писал(а):
желательно использовать что-то типа StrList-a и считывать с точки массива


------------ Дoбавленo в 06.08:
С этим элементом я близко не разбирался,но обязательно попытаюсь приладить его.Правда я пока не до конца
------------ Дoбавленo в 06.08:
понимаю,как оперативно обрабатывать получающийся буфер так,чтобы не терять сообщения,которые приходят
------------ Дoбавленo в 06.08:
постоянно.Предполагаю,что циклом?!Думаю,что справлюсь помучавшись немного.
------------ Дoбавленo в 06.08:
Большое спасибо Вам за помощь,буду пробовать.О результатах отпишусь непременно
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#23: 2011-02-27 10:53:43 ЛС | профиль | цитата
Provodnik, простой рассчет (на пальцах) показывает, что провайдер шлет пакеты по 8192 байта.
Одна строка [b]000000001;20110225193405;901;100000003
[/b] - это 40 байт.
8192:40=204,8 -> вот тебе и порванная 205-я строка в 32 байта (0.8*40=32). Оставшиеся недопосланные
8 байт (000205
) в следующем пакете идут первой строкой.
.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Provodnik
Ответов: 19
Рейтинг: 0
#24: 2011-02-27 11:50:12 ЛС | профиль | цитата
Tad писал(а):
Provodnik, простой рассчет (на пальцах)


------------ Дoбавленo в 11.49:
Логично!Даже более чем!Пока не совсем понимаю,что это мне даст кроме осознания того,что кривой провайдер,но
------------ Дoбавленo в 11.49:
вариант очень хороший!Есть возможность если что спереть на балбесов-испанцевСпасибо большое!!!
------------ Дoбавленo в 11.50:
Вы мне с Неско очень помогли!!!
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#25: 2011-02-27 12:09:44 ЛС | профиль | цитата
Provodnik, спереть на испанцев не получится - испанцы засмеют. Общепринятая практика использования длин кратных целому числу байт, килобайт и т.д. 8192 байта = 8кб. Тут не подкопаешься - всё в пределах "закона" и провайдер совсем не кривой.
Просто при обработке пакета (на приемной стороне) нужно нужно обработать 8160 байт (204 строки по 40 байт) а оставшиеся 32 байта должны ждать прихода следующего пакета.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 19
Рейтинг: 0
#26: 2011-02-27 12:21:34 ЛС | профиль | цитата
Tad писал(а):
Provodnik, спереть на испанцев не получится


------------ Дoбавленo в 12.21:
Ну вот теперь и я об этом знаюЕщё раз спасибо,многое тогда становится на свои места.Иначе говоря,нужно с
------------ Дoбавленo в 12.21:
этим смириться и обрабатывать этот недостаток...Раз уж я смирился с тем,что я полный профан в этом деле,у
------------ Дoбавленo в 12.21:
меня последняя просьба...Может быть подскажете,как реализовать алгоритм обработки пакетов грамотно?
------------ Дoбавленo в 12.21:
Буду по гроб жизни благодарен!
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#27: 2011-02-27 12:24:12 ЛС | профиль | цитата
Да и делить на строки по
не нужно.
- это и есть деление на строки. Провайдер уже поделил.
------------ Дoбавленo в 12.24:
Provodnik писал(а):
,как реализовать алгоритм обработки пакетов грамотно
это к nesco (он шифрование полюбил )
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#28: 2011-02-27 12:57:49 ЛС | профиль | цитата
Tad писал(а):
он шифрование полюбил

И каким боком криптография относится к разбиению пакетов
К тому же, я сейчас немного занят, не хочу оставлять начатое дело на полпути.
У нас тут много народа, который занимается передачей пакетов, картинок и еще всякой лабуды
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#29: 2011-02-27 13:11:03 ЛС | профиль | цитата
nesco писал(а):
И каким боком
шутка.
Provodnik,
Provodnik писал(а):
Суть в том,что по приёму в порт сервера одновременно приходит до 1500 сообщений вида
"одновременно" - это как ?
Или он тебе отправляет до 60кб пакетами по 8 кб ?
А потом перерыв - сколько в минутах (секундах, часах) ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 19
Рейтинг: 0
#30: 2011-02-27 14:34:03 ЛС | профиль | цитата
Tad писал(а):
А потом перерыв - сколько в минутах (секундах, часах) ?


------------ Дoбавленo в 14.33:
Конкретной привязки времени к количеству нет.Может 1500 друг за дружкой кучей придти,а может 1 в час.
------------ Дoбавленo в 14.33:
Раз благодаря Вам стало понятно про 8кб,то проблема только от 204 сообщений,приходящих друг за дружкой.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)