Objective-C Bonjour / TCP Stack - PullRequest
3 голосов
/ 31 июля 2009

Мне было интересно, знает ли кто-нибудь о комбинированном стеке Objective-C Bonjour / TCP, который позволил бы мне забыть об управлении сокетами, службами вещания и т. Д., А вместо этого позволил бы мне просто разместить службу и / или получить список существующие услуги и подключиться к одному. Затем просто продолжайте, отправляя сообщения конкретным клиентам со стороны сервера или на сервер от клиента.

Я предполагаю, что любые полученные сообщения и / или обнаруженные сервисы будут отправлены мне через методы делегата, а остальная часть грязной работы будет зависеть от стека.

Я понимаю, что это не так уж сложно реализовать самостоятельно, и у меня уже есть кое-что из этого, но было бы гораздо разумнее использовать зрелую платформу.

Дополнительные очки, если он совместим с iPhone.

Ответы [ 6 ]

4 голосов
/ 19 августа 2009

Я бы сказал "сделай сам".

Если вы не думаете, что требования, которые вы перечислили в вопросе, изменятся, то простая, но хорошо проверенная реализация сервера сокетов + сетевых сервисов и оболочки для потоков сокетов + подойдет - вы можете этого не делать даже нужен "каркас" как таковой.

Я реализовал нечто подобное для учебника и уже использовал его в нескольких различных проектах. Вы просматриваете около 200 строк кода для сервера сокетов TCP и около 300 строк для класса Connection (с делегатами и всем этим).

3 голосов
/ 18 января 2010

Похоже, вы ищете GameKit Framework, включенный в iPhone SDK. GameKit через GKSession предоставляет именно то, что вы ищете. Существует много документации, но официальное руководство Apple - отличное место для начала.

1 голос
/ 20 августа 2009

Ознакомьтесь с примером приложения Apple WiTap для iPhone. Многие из структур, о которых вы просите, уже существуют там. Вы можете найти его в iPhone Dev Center .

0 голосов
/ 12 августа 2009

Как насчет использования AsyncSocket . Я не использовал его лично, но, кажется, это идеальный выбор для вас.

0 голосов
/ 10 августа 2009

Существует ConnectionKit , который может значительно облегчить общение через FTP, HTTP, SFTP, WebDAV и Amazon S3. Он не поддерживает iPhone напрямую, так как Какао является одной из его зависимостей, но я думаю, что он портативный. Я не уверен, будет ли это полезно в вашем случае, но подумал, что выкину это на всякий случай.

0 голосов
/ 09 августа 2009

Как насчет использования NSNetServices , встроенного в iPhone и OSX? Это делает всю работу по публикации / подписке на услуги Bonjour.

Конечно, если вы публикуете сервис, вам нужен сокет для связи, и в зависимости от используемого вами протокола способ обработки входящих сообщений (и наличие ответов и т. Д.) Означает, что вы должны заранее знать, что такое инфраструктура обмена сообщениями.

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

...