Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.172.115] |
|
Сообщ.
#1
,
|
|
|
Что имеется:
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... |
Сообщ.
#2
,
|
|
|
Цитата VFaust @ Что не получается: 1. Не происходит события onRead... После активации сокета (Open или Connect) было событие Connected? (Пакеты пока вообще не посылаем)... |
Сообщ.
#3
,
|
|
|
Есть событие onConnect затем onWrite, после отправки 4й посылки появляется событие onDisconnect...
|
Сообщ.
#4
,
|
|
|
Цитата VFaust @ Есть событие onConnect затем onWrite, Отлично. Цитата VFaust @ после отправки 4й посылки появляется событие onDisconnect... Если ВООБЩЕ ничего не посылать - будет дисконнект через определенное время или нет? И это время одинаковое в случае если ты как сейчас посылаешь и когда вообще ничего не посылаешь? |
Сообщ.
#5
,
|
|
|
Если ничего не отсылать, то дисконекта не происходит... (ждал 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 |
Сообщ.
#6
,
|
|
|
Цитата VFaust @ Как только я посылаю 4ю посылку у меня дисконнект... Судя по логам CommView дисконнект происходит с моей стороны (если такое событие имеет инициатора)... Показывай, как посылаешь... Добавлено Цитата VFaust @ На кнопку отсылаю ClientSocket1.Socket.SendText(#00); Как вариант - попробуй воспользоваться методом SendBuf... |
Сообщ.
#7
,
|
|
|
Проблема не в отправлении, а в приеме...
Фото пакета который я отсылаю Фото пакета, который я не могу получить Красным выделены различия, как мне кажется из-за которых я не вижу пакета... Зеленым выделены данные... |
Сообщ.
#8
,
|
|
|
Цитата VFaust @ Проблема не в отправлении, а в приеме... Ну в таком случае могу посоветовать поднять серверное приложение и этим клиентом попробовать подконнектиться к нему (например, на локалхост). И убедиться, что то, что посылаешь с сервера на клиенте нормально принимается. Если это будет так, а с девайса не сможешь принимать - тогда только изучать, почему так, углубившись в мануалы по девайсу (если он стороннего производителя)... А вот если прием и здесь "захромает", тогда уже и "репу морщить" в сторону нормальности компонента и т.д.... |
Сообщ.
#9
,
|
|
|
Я пробовал подключаться к собственному серверному приложению и всё работало, даже порт использовал тот же...
CommView видит данные, и я хочу принимать вот такие "специфические" пакеты... Добавлено На другом форуме мне предложили Цитата: Ну для отпетых извращенцев есть еще способ - cотворить файрвол и в интересующих пакетах менять PSH c 0 на 1 |
Сообщ.
#10
,
|
|
|
VFaust
У вас что то получилось? Интересен результат) |