Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2009, 20:48   #1
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию Несколько общих вопросов по Indy 10, Builder 2009 Up 2

Всем доброго времени суток! =) Ребята ну вы уж меня извините... но не спрашивает только тот кто не учится =) потому у меня кууууча вопросиков по индейцу =) . Ну что ж очень надеюсь на вас... итак пожалуй начну =)
1) Как правильно оформлять работу клиент сервера? Прочитав книгу по Инди (наш русский перевод оффициальной книги... ну что то такое) я только понял общую суть. Но самого главного - создание рабочих клиент - серверных программ... скажем клиент коннектится к серверу происходит ОнКоннект. А что такое Bind? То есть там есть After & Before Bind что это? Он Ексепшен это вроде при ошибке. А что такое тогда OnExecute? И чем он отличается от OnConnect? Как правильно организовывать сеть? Ну то есть весь код писать в Он Коннект? Писать как консольное приложение? То есть чтобы код шёл сверху в них и не прыгал куда то в стороны?
2) Как можно узнать, ну или даже как сделать мини фаерволл? Суть какого очень проста. Если на определенный порт коннектится кто то \ что то то узнать оного ИП адрес? И было бы хорошо даже с возможностью "убить" , ой ))) отключить его =) если он в чёрном списке (список я то организую, а вот как скажем отключать? оО просто не знаю... )
3) Можно как то заблокировать доступ к портам из под сетей? То есть скажем есть под сеть 192.1.х.х вот её и всю как бы заблокировать? Или скажем... из того же чёрного списка выбрать проверять или ИП пренадлежит сетке забаненых? Ну... просто сначала думал через цикл т.к. скажем 192.1.х.х - х это от 0 до 255 думал проверять через цикл. Потом показалось что будет чуток как бы... ну не оптимизировано. То есть будет грузить компютер не хило... скажем если одновременно подключится 10-20 человек так сделать проверку 255*255 раз ... это будет чуток как бы... ну хз... может и ошибаюсь.
4) Как сделать передачу файлов?
Ну думаю если будут ещё вопросы то буду по ходу дела задавать =)

Ребята просто поймите... если бы было столько материала сколько по Инди 9 всё было бы не плохо. Но в на самой офф страничке Инди прожекта сказано что отличия существенны. И даже целая статья написана про это. Так что очень буду вам благодарен за оказаную помощь. Ведь думаю тут не раз подымался вопрос о Инди (не только мной =) ) а в этих вопросах я как бы собрал всё что надо для начинающего сетевого программиста =)

Ребята очень-очень прошу вашей помощи. Т.к. вот даже у меня на руках последння книга о Билдере 2007 (от Пахомова) и там Инди 9

Ребята если вы хоть что то знаете, хоть маленький кусочек из выше описаного пожалуйста не скупитесь дайте хотябы где можно почитать, а лучше сами в 2ух словах скажите что и как =)

Заранее очень благодарен!!!
Killbrum вне форума Ответить с цитированием
Старый 24.05.2009, 21:27   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2Killbrum мда.... может надо начать с чистых сокетов? нефиг браться за либы, не понимая основ. ты можешь решить диффиренциальное уравнение, не зная производных, интегралов и тп? все эти либы созданы только для удобства, для повышения скорости написания кода, чтобы по 10 раз одно и то же не писать. но основы то знать надо.
vvviperrr вне форума Ответить с цитированием
Старый 24.05.2009, 21:35   #3
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

Цитата:
Писать как консольное приложение? То есть чтобы код шёл сверху в них и не прыгал куда то в стороны?
это вообще меня убило. что значит не прыгал в стороны. и как вы тут связали данную мысль с консольным приложением
vvviperrr вне форума Ответить с цитированием
Старый 24.05.2009, 22:51   #4
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Может и надо =) я всегда стараюсь начать с самого простого. Ну имею ввиду с основ. Но ни в одной современной книге нету никакой информации о этом. Сразу инди =). Помню раньше брал книгу (кажется Фленова) так там примеры не работали с сокетами. =) спрашивал на форуме мне сказали что там не рабочих много ))) потому и не стал дальше с сокетами разбиратся...

Ну почему сразу убило? =) мне просто иногда сложно выразится бывает. Но на это не обращайте внимания =) я уже узнал ))).

Ну ладно если я задал слишком глобальные вопросы то попытаюсь это всё ... ну изложить более кратко =)

1) Тут как.. я не понимаю что такое: OnAfterBind,OnBeforeBind (в принципе что такое Бинд? =) ), OnBeforeListenerRun, OnExecute, OnStatus. Скажем так... ну вроде как при коннекте сначала выполняется ОнКоннект а потом OnExecute. А остальное когда? И что это вообще? =) Ну например понимаю как написать приложение скажем... ну передать текст. То есть клиент читает, сервер пишет. Но вот скажем если клиент просто висит на линии, а сервер ему что то написал. Как тогда среагирует клиент? Ну то есть он же не скажем... ееее... какбы правильно выразится... ну он же скажем ничего не знает что там ему кто то написал. Он просто висит. Так как тогда прочитать то что написал сервер? Попыпаюсь ещё более понятливей... Произошёл коннект. Клиент и сервер перекликнулись и какбы знают друг о дружке. Вроде на данный момент ничего не надо обрабатывать. Ну и клиент просто висит на линии. И тут серверу взбрело в голову что то написать клиенту. Он написал. А как клиент узнает об этом? оО

2) Ну например знаю что узнать ИП можно через ИПВотчер. Но скажем тогда клиент сам должен отослать свой ИП. А мне как бы так не надо =) мне бы... ну чтобы без клиента. Надо просто видеть любой ИП который подключился к ПК =) ну и скажем... как заблокировать данный ИП тоже не знаю

3) Ну ладно тут могу и через цикл сделать =)

4) Ну тут вроде нечего разжовывать =) Через HTTP знаю - Get. Но мне надо чтобы напрямую через TCP передавался файлик =)

Очень благодарен за ответы!
Killbrum вне форума Ответить с цитированием
Старый 25.05.2009, 00:43   #5
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

Цитата:
Тут как.. я не понимаю что такое: OnAfterBind,OnBeforeBind (в принципе что такое Бинд? =) )
bind - связывание прослушивающего сокета с портом. знал бы сокеты, этого вопроса не возникло.

Цитата:
Вроде на данный момент ничего не надо обрабатывать. Ну и клиент просто висит на линии. И тут серверу взбрело в голову что то написать клиенту. Он написал. А как клиент узнает об этом?
есть множество методов обработки сообщения, от бесконечного цикла, вызывающего read до тех пор, пока не eof, до продвинутых функций select и Poll. опять же, знал бы ты сокеты, не задал бы ты такой вопрос.

Цитата:
2) Ну например знаю что узнать ИП можно через ИПВотчер. Но скажем тогда клиент сам должен отослать свой ИП. А мне как бы так не надо =) мне бы... ну чтобы без клиента. Надо просто видеть любой ИП который подключился к ПК =)
Сервер получает ип от клиента, хранится он в структуре sockaddr_in. Но ты не в курсе, потому что не работал с чистыми сокетами.

Цитата:
Ну тут вроде нечего разжовывать =) Через HTTP знаю - Get. Но мне надо чтобы напрямую через TCP передавался файлик =)
ответь мне, чем файл отличается от сообщения? там набор байт, тут набор байт. читаешь из файла по кускам и отсылаешь. на другом конце записываешь в файл. в виндовых сокетах есть transmitFile, которая целиком отправляет файл. ты небось искал метод SendFile в своем инди (от слова индус чтоли). ан нету. и ты сразу в тупике.

Цитата:
как заблокировать данный ИП тоже не знаю
это зависит от того, как ты решишь работать с многими клиентами. если тупо циклы/потоки, после срабатывания функции accept ты получишь адрес вновь подключившегося клиента. и если адрес находится в черном списке (как сделать черный список отдельная задача, сюда она не входит), то просто не создавать поток на ожидание сообщений от этого сокета, а отправить сообщение, аля banned.

из книг советую Network programming with Microsoft Windows, она есть на русском, одно время даже продавалась от издательства Microsoft Press, но что то больше не продается. в свое время я облазил все книжные москвы - не нашел. есть отвратительный скан. и еще есть оригинальная английская второго издания. вот ее то и надо читать.
Еще есть отличнейшая книга UNIX. Разработка сетевых приложений. ее купить не проблема, как раз новое издание недавно вышел, что я, собственно, и приобрел. Как сам можешь понять из названия, предназначена она для unix программеров, но общие принципы работы с сокетами одинаковы.

надеюсь, я не зря в первом часу ночи распинаюсь тут, и ты передумал писать свой мега чат с передачей файлов и баном юзеров (или что ты там собрался писать), а почитать для начала хорошую литературу.
vvviperrr вне форума Ответить с цитированием
Старый 25.05.2009, 10:41   #6
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Да большое спасибо! =) после первых 3ех аргументов - перехотелось =) пойду искать литературу. Не знаю как мне с английским... ну т.к. я вроде нормально понимаю простой разговорный язык, но уже технический... плаваю и то сильно... буду может на русском искать =) .
Спасибо вам большое! =) надеюсь если возникнут вопросы вы мне не откажете.
Killbrum вне форума Ответить с цитированием
Старый 27.05.2009, 20:58   #7
Killbrum
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 206
По умолчанию

Вот у меня походу дела возник вопросик... sockaddr_in . В нём хранится что? Сокет который подключился в целом к ПК или тот сокет который подключился к данной программе? Заранее очень благодарен!
Killbrum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
10 самых популярных общих вопросов Alex21 Свободное общение 23 24.07.2010 01:30
Несколько вопросов pix_l Общие вопросы Delphi 1 29.03.2009 22:26
Несколько вопросов Зубоскалик Общие вопросы Delphi 14 20.11.2008 14:28