![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Coderr |
|
||||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Блин. Никак не получается... От указателей уже башка едет...
![]() Помогите написать основные функции ивзвлечения/добавления UL, LPS данных создания и отправки пакетов. Использую компонент TClientSocket. Ниже привожу код, который получился у меня: Структура заголовка пакета:
Создание заголовка пакета:
Добавление UL блока:
Добавление LPS блока:
Извлечение UL блока из принятых данных:
Функцию извлечения LPS блока из принятых данных я ещё не писал. Вот так я принимаю данные:
А вот так я создаю пакеты:
И ещё один вопрос напоследок. Иногда сервер меня дисконнектит. Это связано с тем, что я шлю ему неправильный пакет? ЗЫ Помогите, пожалуйста, а то я точно свихнусь... ![]() Присоединённый файл ( Кол-во скачиваний: 20 ) ![]() --------------------
Кодинг - это стиль жизни! |
||||||||||||||
|
|||||||||||||||
VICTAR |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Имхо ты тут много всего лишнего наделал.
Выделяй/освобождай память лучше с помощью New/Dispose. Чтение например UL
Остальное по аналогии Ну про прием я уже говорил. Так как у тебя сейчас сделано не пойдет. Да |
||||
|
|||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Спасибо Виктару сегодня опробую.
Добавлено через 3 минуты и 17 секунд Хотел только один момент уточнить... Вот у нас тело пакета хранится в массиве байтов. А чтоб достать/положить LPS строку, что надо делать? Присоединённый файл ( Кол-во скачиваний: 15 ) ![]() --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Запись
Move(длина_строки, Packet^.Data[позиция], 4); Move(Строка[1], Packet^.Data[позиция], длина_строки); Чтение Move(Packet^.Data[позиция], длина_строки, 4); SetLength(строка, длина_строки); Move(Packet^.Data[позиция], Строка[1], длина_строки); |
|||
|
||||
Coderr |
|
||||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Типы:
Сделал вот такие функции...
...и вот такие пакеты:
Принимаю данные теперь так:
... вылетаю после HELLO пакета... ![]()
по причине несовпадения типов. А вот если задать тип так:
то всё нормально работает, за исключением дисконнекта. Где я опять напортачил??? ![]() --------------------
Кодинг - это стиль жизни! |
||||||||||||
|
|||||||||||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
ReallocMem зачем? память ты уже выделил при создании пакета
|
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Чтобы изменять размер занимаемой памяти. Ну исправил я. Всё равно на хэллоу обырается... =(
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Не в обиду, но ты вряд ли понимаешь, что делаешь
Весь код не смотрел, но даже беглым взглядом заметно много ошибок и недочетов |
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Хм... Да уж. Спасибо! New что-то не заметил. А с указателями работать я начал только вот месяц назад, но пока с ними у меня плохо...
Вобщем, мегаРЕСПЕКТ тебе. К серваку приконнектился, вродь норм. Правда, статус мой не отображается у других(т.е. я красный в КЛ). Сменить статус? --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Свой статус ты посылаешь в MRIM_CS_LOGIN2
|
|||
|
||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Ну правильно!
Вот это так выглядит:
И по идее пакет отправился верно(меня не скинуло). Вот только на mail агенте не видно, что я в сети... Что я опть не так сделал??? ЗЫ На нахождение в списках виз/инвиз и игнор не сслыться, ибо эта версия проверялась отдельно. --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Не вижу у тебя TimerPing.OnTimer. Что там?
|
|||
|
||||
Coderr |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
ДА всё, я разобрался =))) Ошибка была примитивно простые.
Везде, где пакет был больше чем 44 байта(т.е. в Data что-то было), я делал так:
поменял на:
Исправил, работает. --------------------
Кодинг - это стиль жизни! |
||||||
|
|||||||
Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Вопрос по смс.
а что за unknown? --------------------
Кодинг - это стиль жизни! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 3 Всего: 80 |
Честно говоря не знаю, поснифь официального агента, но там вроде должен быть 0. Короче этот параметр не важен.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |