![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
elestrago |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 23.8.2007 Где: runet Репутация: 1 Всего: 3 |
Парни покажите пожалуйста как элементарно отправить\приянять текст используя INDY tcp server\client
желаетльно бы увидить какой нибуть работающий исходник(клиент отправляет текст серверу сервер выводит в мемо и наоборот)!! а то я не фига не могу понять в инди, до этого работал в TClient\serverSocket там это делается элементарно!! и что еще за событие Onexecute в сервере инди? ![]() Пс читал Глубины инди но там я не фига не понял есть ли что нибуть наподобии только не глубины а "поверхность" инди ? ![]() --------------------
|
|||
|
||||
elestrago |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 23.8.2007 Где: runet Репутация: 1 Всего: 3 |
блин сори за тему, просто я криво поставил инди 10 и все коды которые я пробовал не работали... теперь 9ю вернул и все заработало и я все понял ))))
--------------------
|
|||
|
||||
DmitryHT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 31.8.2007 Репутация: нет Всего: нет |
поставь 10.2.3 из snapshot - вообще сказка
![]() |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Неожиданно вперся в необходимость работать с сетью. Нужно написать сервер, который бы отслеживал состояние множества клиентов. Выбрал Indy 9, могу изменить на Indy 10, но там я не нашел компонента TIdThreadMgrDefault с которым дается пример в DRKB. ХЗ, что там еще поменялось.
Положил на форму TidTCPServer, TidTCPClient, для реализации множества потоков, как я понял, нужен TIdThreadMgrPool вместо TIdThreadMgrDefault. Задал для сервера DefaultPort=5500, он вроде ничей. Сразу вопрос, как это свойство связано со свойством Bindings? Указал у клиента хост и порт. Чем отличаются Bound Port и Port? Пробую вызвать TCPClient.Connect(5); и получаю эксепшен, что "address and port already in use". Что делать? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Так, похоже, в одну софтину клиент и сервер не положишь. Года 2,5 назад я с Winsock API ковырялся так вроде получалось.
Остается вопрос, что нужно использовать, чтобы обрабатывать подключения с множества компов: TIdSchedulerOfThreadPool или что иное (ничего). -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
dumb |
|
||||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 5 Всего: 158 |
"ложил" - все работало. только одно "но" - передаваемая инфа должна влезать в размер буфера передачи. иначе кофликты где-то в индейских дебрях происходят.
Bound - это твой исходящий порт(который как правило не представляет интереса). демонстрировать код. |
||||
|
|||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Еще вопрос, что делать с Connection Closed Gracefully? Просто пингую по таймеру Timer1 сервер. При посылке запускаю Timer2, который проверяет таймаут. Если что-то принято, то таймер1 перезапускается, таймер2 останавливается. При срабатывании Timer2 считаею, что связь порвалась и запускаю Timer4, в котором попробую соединиться.
Все нормально пока сервер не закрываю, после этого начинает добивать ошибка Connection Closed Gracefully и события таймеров не срабатывают. Где ловить это исключение мне непонятно. При перезапуске сервера связь не всстанавливается. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 5 Всего: 158 |
||||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
Beltar, имхо не самая лучшая мысль использовать TTimer...
это вроде как значит, что с "другой стороны" закрыли соединение... эээ... это разве пинг? -------------------- There are always someone smarter than you... |
|||
|
||||
Beltar |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
А какая разница, что послать? Ну допустим у меня простейший текстовый протокол. Приставил к строке CMD: считаю, что это команда, нет, просто сообщение.
Ну да. Достаточно закрыть сервер, как возникает такое исключение. И дальше каждые несколько секунд. Мне не понятна такая логика, если клиент сам обнаруживает разрыв связи (=> я изобретаю велосипед), то почему он просто не переходит в дисконнектид? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
||||
|
|||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
надо называть все своими именами. ping - это ping. а то, что ты там сам шлешь - ни разу не пинг. прямо таки? и в каком месте возникает? -------------------- There are always someone smarter than you... |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Понятие "сам" очень относительно.
![]()
Так все нормально. Спасибо за помощь. ![]() -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |