-
SysSockInetAddr
Добрый день!
Что должна возвращать функция SysSockInetAddr? У меня все время возвращает 0. Например:
dn: DINT;
dn:= SysSockInetAddr( '10.0.0.7' ); (* dn = 0 *)
Задался вопросом потому что никак не могу дождаться TRUE от SysSockConnect... )
Спасибо.
-
да... новички они такие....
спрашиваешь одно, а они отвечают другое... ))
Кто ответит НОЛЬ корректный ответ от SysSockInetAddr? Функция возвращает НОЛЬ в двух проектах, со стороны клиента и со стороны сервера. Соответственно не конектяца оба... ))
-
Посмотреть в какой DWORD будет конвертировать другой скормленный STRING ))
-
Неа. А что должна возвратить SysSockCreate? Я так понимаю манипулятор (адрес в памяти ПЛК) созданного сокета. У меня SysSockCreate возвращает 1 (это даже не SOCKET_INVALID). Это к вопросу о количестве созданных (и не закрытых) сокетов. Сколько их не создавай все равно возвращает 1... ))
В какую сторону копать? ))
-
Ну да. В библиотеке можно лишь посмотреть порядок вызовов функций. А вот проверки того, что они исполнились не подходят совсем. Функции возвращают совсем не то, что от них ожидаешь. Связь появилась, но SysSockInetAddr так и не заработала, от SysSockConnect так true и не дождался. По ходу так же криво устроены и (*ошибся*), и SysSockListen. Может я и не прав, но true от них так и не видел. SysSockInetNtoa по ходу тоже не работает совсем. Посмотреть IP клиентов на сервере пока так и не смог. Разработчики, я не прав? У Вас все работает? "На что" Вы, проверяете функции? Что я делаю не так? ))
Последний раз редактировалось lazy; 24.05.2012 в 11:51.
-
Меня терзают смутные сомнения, что для PLK100.K-M, код по ссылке работать не будет. Потому что:
IF SysSockConnect( m_dnSocket, ADR( m_SAddress ), SIZEOF( m_SAddress ) ) THEN
(* Ok*) - здесь оказаться так и не смог;
ELSE
(* Error *);
END_IF;
пока работает так:
IF BOOL_TO_INT( SysSockConnect( m_dnSocket, ADR( m_SAddress ), SIZEOF( m_SAddress ) ) ) < 0 THEN
(* Error *);
ELSE
(* Ok *);
END_IF;
Так же поступаю и с (*ошибся*), и с SysSockListen. Но хотелось бы гарантий, что связь не будет зависеть от погоды... ))
Последний раз редактировалось lazy; 24.05.2012 в 11:51.
-
Как перевести IP адрес из строки в DWORD?
Например '10.0.0.8' это 16#0A000008 ?
-
capzap, запиште мне 10.0.0.8 DWORD'ом "или хотя бы четырмя байтами" )
я спросил это 16#0A000008 ? )
-
Я ходил по всем ссылкам. Читал библиотеки. И не только. не ра бо та ет ))
В блокирующем режиме связь иногда появлялась. обмен шел. но это вероятно было случайно. и не знаю каким образом. потому что вызовом SysSockAccept можно узнать IP клиента и этот вызов должен (как я понимаю) возвратить манипулятор сокета отличный от манипулятора сокета сервера. такого не происходило. ) эту тему можно считать закрытой SysSockInetAddr не работает. ))
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума