Реализация сервиса на Symbian

В переходной серверной реализации клиентское приложение представляет собой консольный исполняемый файл.

Я хочу знать, могу ли я интегрировать свое приложение на основе графического интерфейса с клиентом и сервером, указанным на временном сервере.

Каков наилучший способ?

  1. Хорошо ли конвертировать клиентский exe в dll и использовать dll в моем приложении с помощью RLibrary.

  2. Хорошо ли реализовать LIB и интегрировать это в проект.

Прямо сейчас я могу запустить TestClient.exe из моего приложения с графическим интерфейсом, используя API запуска.

Если я хочу запустить сервер в фоновом режиме, а приложение с графическим интерфейсом — на переднем плане, как лучше всего интегрировать временный сервер с приложением с графическим интерфейсом?

Запуск TextClient.exe не решит мою проблему, потому что я хочу, чтобы мой графический интерфейс общался с клиентом.

Заранее спасибо.


person rahulm    schedule 20.09.2009    source источник


Ответы (1)


Если вы намерены отделить графический интерфейс пользователя от демоноподобного фонового процесса, вы можете проверить концепцию клиент-серверной архитектуры на Symbian — не путать с сетевыми ситуациями клиент-сервер.

Архитектура клиент-сервер Symbian обеспечивает двустороннюю связь между графическим интерфейсом в вашем примере и фоновым процессом.

Форум Nokia — Введение в архитектуру клиент-сервер

person Community    schedule 30.09.2009
comment
привет, я реализовал архитектуру клиент-сервер, но моя проблема в том, что IP-сокету TCP требуется время для чтения данных из сокета, и я получаю ответ от клиента в методе обслуживания в этом методе обслуживания, я должен написать ответ клиенту, который как реализовать TCP сокет в симбиан - person rahulm; 08.10.2009
comment
Связь от клиента к серверу в архитектуре Symbian является асинхронной. Клиент отслеживает TRequestStatus, связанный с сообщением, которое он отправил на сервер. Когда сервер завершает RMessage, ActiveScheduler вызывает метод RunL на стороне клиента. Таким образом, вы можете сначала выполнить TCP-связь на стороне сервера, проанализировать входящие данные, а затем, только после того, как данные были получены, вы можете завершить RMessage. - person ; 08.10.2009
comment
спасибо за код ответа, который у меня есть для реализации клиент-сервер, взят из примера файлового сервера, который не имеет активного объекта RunL() и асинхронно вызывает его только с методом connect() и start server() во время операции записи, если я предоставляю параметр TRequeststatus сбои с пользовательской паникой 70 (блуждающий сигнал) можете ли вы предоставить мне ссылку на любой пример, в котором реализован правильный клиент, и любой пример кода - person rahulm; 08.10.2009
comment
Погуглив на discussion.forum.nokia.com/forum/showthread .php?t=125929 Я нашел, в SDK есть: \Symbian\9.1\S60_3rd\Examples\Base\IPC\ClientServer\ и один онлайн meme-education.com/ASDBookSOSEcode.html - person ; 09.10.2009
comment
спасибо за ответ, я могу реализовать асинхронную архитектуру сервера cleint. Моя проблема в том, что есть сокет tcp, который я интегрирую в сервер, который является производным от класса (CServer2) CTimeServer: public CServer2, который также является активным объектом для получения значения для сокета чата, если я вызываю CTimeServer* iTimeServer = CTimeServer::NewL(); iTimeServer-›SendTimeToSessions(данные); удалить iTimeServer; он вылетает из-за паники пользователя 47, потому что в конструкции L () CTimeServer, как разрешить конфликт двух активных - person rahulm; 09.10.2009
comment
Вы можете наблюдать только один TRequestStatus для каждого ActiveObject. Если вам нужно отслеживать несколько TRequestStatus последовательно, вам нужно иметь отдельные АО для этого и что-то вроде реализации конечного автомата, управляющего ими, иначе вы легко получите панику паразитных сигналов. - person ; 12.10.2009