работа с сетью в делфе
2763
16
Кто работал с indy в делфи?
Пишу клиент-серверное приложение.
сделал только чтоб открывался 11111 порт а клиент к нему цеплялся.
гнеобходимо чтоб сервер(на нем есть interbase) спрашивал логин и пароль и пускал к базе 1 если все правильно.в базе 2 лежать логины и пароли.
splashman
У мастеров делфи есть неплохие статейки по работе с сокетами, глянь, может поможет :спок:
splashman
splashman
Не совсем понял.

Уж не собрался ли ты работать с СУБД Interbase в лоб, используя чтение/запись данных в сокеты? Есть же стандартные решения, например через тот же BDE+SQL Links или FIB'ы.
CoolUser
а можно по-подробней?
вообще да. знаю что решение наихудшее но если есть что получше то подскажите.
это относится к верхнему топику про распределенные инф.системы.
нуно: 1 машина - клиент(на ней моя прога клиент) которая цепляется к моему серверу(2 машина)
2 машина - мой сервер на делфе(цепляется к interbase который крутится на машине 3)
3 машина - на ней interbase с базами.
т.е клиент при помощи клиента не сразу цепляется к машине 3 а к машине 2, которая хранит в свойе базе все учетки для доступа.
система тупая, но так сказали к колледже.
если есть предложения лучше то пишите.
splashman
Неужели в ВКИ так превратно понимают трехзвенную архитектуру? Ни за что не поверю!
splashman
Зачем городить лишнее?
У IB логины и пароли и так хранятся в отдельной БД. При чем с приемлимой шифровкой.
IB имеет встроеный механизм аутентификации.
Для чего еще один слой? Если есть необходимость узнать текущие параметры входа - их можно взять из переменных сессии (USERNAME, CURRENT_ROLE и т.д.). Может лучше тратить силы на собственно задачу, а не на изобретение велосипедов?
splashman
система тупая, но так сказали к колледже.
Почему тупая? Все правильно сказали в колледже, обычная трехзвенка, 2 машина - сервер приложений, который кэширует соединения к серверу БД. Только непонятно, зачем работать на уровне TCP/IP или UDP, если есть DCOM/CORBA? Разве что только в целях изучения работы сетей...

сделал только чтоб открывался 11111 порт а клиент к нему цеплялся.
гнеобходимо чтоб сервер(на нем есть interbase) спрашивал логин и пароль и пускал к базе 1 если все правильно.

Спрашивать должен сервер приложений, а не сервер БД. Откройте соединение к БД на сервере приложений и все. А дальше пишите в сокет запросы в своем формате и читайте возвращаемые данные из него, в чем проблема?

в базе 2 лежать логины и пароли.
А это зачем? Настройте правильно учетные записи на SQL сервере и в базе данных, сиквел сам справится с аутентификацией.
Well
желательно тоже но более прикрепленно к делфи(т.е. указать хотябы функции)
splashman
т.е. указать хотябы функции
WSA_xxx, xxxSocket.Read, xxxSocket.Write ...
Вообще, для начала лучше почитать что-нибудь по архитектуре трехзвенок, в инете ссылок полно, а на чем писать и как называть функции - непринципиально, библиотек много, а технология - та же...
Well
Indy? Пытался вчера 10 поставить ни один компонент не встал. выдает ошибки в т.ч. что-то про winsocket2
splashman
Indy? Пытался вчера 10 поставить ни один компонент не встал. выдает ошибки в т.ч. что-то про winsocket2
Про 10-ку не скажу, но 9-ка и вставала и работала нормально. А сейчас вообще пользуюсь eldos blackbox'ом. А точно надо сервер приложений на уровне socket'ов реализовывать?
Well
необязательно. это я так ,по незнанию захотел.
у меня просто стоит задача РИС на делфи. надо её выполнить. вот и думаю как и что.
нужен совет.
splashman
у меня просто стоит задача РИС на делфи.
Тогда роем в сторону TRemoteDataModule, закладки DataSnap и т.д.

Первая попавшаяся ссылка, почитать можно, например, здесь.
Well
ща будем изучать. хотелось бы сделать не просто для тогочтоб сдать а что-нибудь интересное, сложное(в целях самообразования).
splashman
никаких предложений не будет? там идей каких-либо как сделать.