Вопрос № 173643: Доброго времени суток!!! Возник один вопрос - уже всю голову сломал, не знаю, как решить Необходимо написать клиент-серверную "связку" для обмена информацией по сети. Для таких целей я соответственно выбрал компоненты TClientS...
Вопрос № 173643:
Доброго времени суток!!!
Возник один вопрос - уже всю голову сломал, не знаю, как решить
Необходимо написать клиент-серверную "связку" для обмена информацией по сети. Для таких целей я соответственно выбрал компоненты TClientSocket и TServerSocket. Но проблема в том, что клиентский "модуль" должен работать с несколькими серверными "модулями", что компонент TClientSocket делать не умеет (серверный "модуль", кстати, также должен работать с несколькими клиентами,
но тут нет проблемм). Для обхода этих препятствий, я описываю свой класс MyClientSocket и массив "клиентов" (пример кода в приложении). Вызов методов идет, соответственно, без особых проблемм. Но вот с обработкой событий - ступор. В этом и прошу помощи. Прошу помощи в том, как реализовать обработку событий (OnConnect, OnRead и тп.). Все это, соответственно, идет в run-time. При компиляции такого примера RAD'a выдает ошибку:
[DCC Error] Uni
t1.pas(40): E2010 Incompatible types: 'TSocketNotifyEvent' and 'procedure, untyped pointer or untyped parameter'
Если я что-то не так делаю, прошу "указать" мне на это. Прошу не судить строго - я еще только начинающий "кодописатель".
Если есть подходящие другие варианты реализации подобной задачи (не через компоненты TClientSocket и TServerSocket), прошу указать на это.
Заранее спасибо!!!
P.S. Использую Delphi 2007
Отправлен: 24.10.2009, 23:47
Вопрос задал: Kom906, 10-й класс
Всего ответов: 1 Страница вопроса »
Отвечает Bochvarov NikB, Студент :
Здравствуйте, Kom906. Такая "связка" делается при помощи нескольких (по количеству серверов) клиентов в каждой точке. К каждому серверу, из каждой точки, подключается один клиент. Читая ваш нечитабельный исходник, думаю, что ваша переменная Client (не хорошее имя ) должна быть tList, с элементами tClientSocket. Обращаю внимание на ограничение Windows на количество открытых сокетов (т.е. нельзя ОДНОВРЕМЕННО открывать большое
число сокетов) - надо сделать список(List) и пытаться сделать connect периодически. Желаю удачи! PS: если хотите, я пошлю проект с подобной функциональностью, которую делал несколько лет назад, но вам придется ознакомится с большим количеством кода. PPS: Изв. мой русский язык.
Перевод на русский язык
-----
∙ Отредактировал: Victor Pyrlik, Модератор
∙ Дата редактирования: 25.10.2009, 17:13 (время московское)
Ответ отправил: Bochvarov NikB, Студент
Ответ отправлен: 25.10.2009, 11:43
Оценка ответа: 5 Комментарий к оценке: Спасибо!! И отдельное спасибо за возможность предоставления исходников
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 255811
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.