На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> ClientSocket нет события onRead , ClientSocket нет события onRead
    Что имеется:
    1. Контроллер (PLC) c Ethernet его IP=192.168.0.20 (порт для подключения 102);
    2. Компьютер (PC) мой IP=192.168.0.12

    Что требуется:
    1. Подключиться к порту
    2. Периодически отсылать посылки байтов

    Что делаю:
    1. На форму ClientSocket поставил параметры:
    Address: 192.168.0.20
    ClientType: ctNonBlocking
    Port: 102
    2. На кнопку отсылаю ClientSocket1.Socket.SendText(#00);
    3. Жду событие onRead

    Что не получается:
    1. Не происходит события onRead...
    2. Через несколько посылок Disconnect...

    Аргумент:
    смотрю пакеты CommView`ом, пакеты видны, как исходящие, так и входящие...

    P.S. делал анологичное приложение, всё работает, но там был другой порт и PLC...
      Цитата VFaust @
      Что не получается:
      1. Не происходит события onRead...

      После активации сокета (Open или Connect) было событие Connected? (Пакеты пока вообще не посылаем)...:D
        Есть событие onConnect затем onWrite, после отправки 4й посылки появляется событие onDisconnect...
        Сообщение отредактировано: VFaust -
          Цитата VFaust @
          Есть событие onConnect затем onWrite,

          Отлично.
          Цитата VFaust @
          после отправки 4й посылки появляется событие onDisconnect...

          Если ВООБЩЕ ничего не посылать - будет дисконнект через определенное время или нет? И это время одинаковое в случае если ты как сейчас посылаешь и когда вообще ничего не посылаешь? :D
            Если ничего не отсылать, то дисконекта не происходит... (ждал 5 мин)...
            Как только я посылаю 4ю посылку у меня дисконнект...
            Судя по логам CommView дисконнект происходит с моей стороны (если такое событие имеет инициатора)...

            Добавлено
            Только что заметил маленький нюанс...
            При расшифровке пакета ComView в пакете подсвечивает части [Ethernet II], [IP], [TCP]...
            После области TCP я наблюдаю свои данные...!!!!, но в расшифровке эти данные не значатся..., а параметр TCP.Data length = 0...!!!

            Добавлено
            Покопал еще...,

            во всех исходящих пакетах
            IP -> Flags -> Don't fragment bit: 1 - Don't fragment

            а во входящих пакетах
            IP -> Flags -> Don't fragment bit: 0 - May fragment
              Цитата VFaust @
              Как только я посылаю 4ю посылку у меня дисконнект...
              Судя по логам CommView дисконнект происходит с моей стороны (если такое событие имеет инициатора)...

              Показывай, как посылаешь... :D

              Добавлено
              Цитата VFaust @
              На кнопку отсылаю ClientSocket1.Socket.SendText(#00);

              Как вариант - попробуй воспользоваться методом SendBuf... :huh:
                Проблема не в отправлении, а в приеме...

                Фото пакета который я отсылаю
                user posted image

                Фото пакета, который я не могу получить
                user posted image

                Красным выделены различия, как мне кажется из-за которых я не вижу пакета...
                Зеленым выделены данные...
                  Цитата VFaust @
                  Проблема не в отправлении, а в приеме...

                  Ну в таком случае могу посоветовать поднять серверное приложение и этим клиентом попробовать подконнектиться к нему (например, на локалхост). И убедиться, что то, что посылаешь с сервера на клиенте нормально принимается. Если это будет так, а с девайса не сможешь принимать - тогда только изучать, почему так, углубившись в мануалы по девайсу (если он стороннего производителя)... :D А вот если прием и здесь "захромает", тогда уже и "репу морщить" в сторону нормальности компонента и т.д....
                    Я пробовал подключаться к собственному серверному приложению и всё работало, даже порт использовал тот же...

                    CommView видит данные, и я хочу принимать вот такие "специфические" пакеты...

                    Добавлено
                    На другом форуме мне предложили

                    Цитата:
                    Ну для отпетых извращенцев есть еще способ - cотворить файрвол и в интересующих пакетах менять PSH c 0 на 1
                      VFaust
                      У вас что то получилось? Интересен результат)
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0415 ]   [ 16 queries used ]   [ Generated: 29.03.24, 07:32 GMT ]