Приложение клиента/сервера какао

Поскольку вопрос помечен тегом point-cloud-library, я представляю решение с использованием PCL .

Отразить нормаль к точке обзора

PCL имеет функцию flipNormalTowardsViewpoint , в которой вы указываете точку, соответствующую нормаль и точку обзора, к которой нужно перевернуться.

Точка обзора обычно является положением камеры в глобальных координатах, но если у вас есть только снимок сцены, то точка обзора становится (0,0,0) .

10
задан hashemi 3 January 2009 в 16:57
поделиться

5 ответов

Если Вы имеете контроль и над клиентом и сервером, и можно ограничить клиент OS X только, я ответ второго Marc. Распределенные объекты какао являются удивительной технологией и делают стиль RPC приложениями клиент-сервер очень легкий.

Если требования выше слишком строги для Вас, Вы все еще имеете много опций в наличии для Вас в мире Какао:

  1. Можно кодировать все клиентское приложение в использовании Python PyObjC. С этим подходом можно использовать стандартный сетевой код, что Вы знакомы с из библиотеки стандарта Python. Скрученный также интегрирует приятно с Какао выполненный цикл (примеры в примере кода PyObjC), и у меня было большое использование успеха, Скрученное для сетевой связи от с в приложении Какао. Если Вы принимаете решение пойти этим путем, можно хотеть кодировать клиентское приложение в Objective C и загрузить код Python как плагин (использующий NSBundle). PyObjC py2app может скомпилировать загружаемые пакеты из кода Python.

  2. Можно использовать NSURLConnection для высокоуровневого доступа к основанному на HTTP серверу.

  3. Раскрывая уровень абстракции, можно использовать NSStream Какао для реализации сетевого протокола. Документация класса здесь со ссылками на пример кода, демонстрирующий протоколы SOAP и HTTP.

  4. Можно раскрыть дальнейший уровень и использовать классы CFNetwork. NSStream основан на CFNetwork, но Вы имеете контроль низшего уровня над строкой с помощью CFNetwork.

Наконец, технология Apple для клиент-серверных архитектур является платформой WebObjects.

6
ответ дан 4 December 2019 в 01:58
поделиться

Какао имеет Портативные Распределенные Объекты, которые позволяют Вам создать клиент / серверное приложение в чистом Objective C и Какао, которое может связаться через процессы или через сеть.

К сожалению, это - одна из более твердых вещей учиться в Какао. Распределенные объекты не были обновлены, чтобы не отставать от новых технологий как привязка, нет большого количества примеров или документации (и многие учебные руководства стары, некоторый даже предшествующий OS X). Существует также много "глюков", даже для опытных программистов Cocoa, в способе, которым объекты передаются через провод или как копия или как объект прокси. Например, можно передать NSURL с сервера, и будет казаться прекрасным, если Вы преобразуете его в строку или посмотрите на него в отладчике, но Ваш клиент откажет, при попытке использовать его в NSURLConnection.

В зависимости от Вашего опыта это может быть легче и более быстрым для использования веб-сервиса, но это все еще стоит заглянуть к тому, если требуется сохранить весь проект в Какао. Вот учебное руководство, если требуется видеть пример.

3
ответ дан 4 December 2019 в 01:58
поделиться

Обычно идеи всех других клиент-серверных платформ применимы.

Смотрите на эту ссылку: http://developer.apple.com/internet/webservices/webservicescoreandcfnetwork.html

1
ответ дан 4 December 2019 в 01:58
поделиться

Посмотрите на API для NSConnection и NSDownload для обработки сетевого соединения. Класс NSString также имеет методы как + stringWithContentsOfURL:encoding:error: это может быть полезно.

Затем существует NSXMLParser и NSXMLDocument для чтения данных XML.

-1
ответ дан 4 December 2019 в 01:58
поделиться

I have written a server and a client class for use in Cocoa. Using these classes makes it very easy to produce a server or client application without the knowledge about sockets and that C-stuff Just have a look at my website or at the sourceforge.net project site.

0
ответ дан 4 December 2019 в 01:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: