Откройте сокет TCP с Objective-c - PullRequest
0 голосов
/ 01 апреля 2012

Как создать сокет TCP с помощью Objective-C, проверить, открыты ли некоторые порты TCP на сервере?

Я пытался использовать некоторые учебные пособия, но ни один из них не работал, потому что мне нужно создать сервер, используя IP (198.168.0.000), а не сайт, такой как paypal.com, как используют некоторые посты в блоге.

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

Спасибо за помощь!

Ответы [ 4 ]

4 голосов
/ 01 апреля 2012

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

2 голосов
/ 01 апреля 2012

Я бы рекомендовал вам взглянуть на NSStream и его подклассы NSInputStream и NSOutputStream.

Для проверки подключения вы также можете взглянуть на Достижимость .

Кроме того, Objective-C является надмножеством C, поэтому вы всегда можете положиться на структуры / функции C для создания сокетов ( Руководство Биджа по сетевому программированию )

1 голос
/ 01 апреля 2012

Начиная с документации Apple, часто это хорошая идея.Прочитайте Настройка потоков сокетов в Руководство по программированию потоков .Имея это под своим поясом, даже если вы решите пойти со сторонней библиотекой, у вас будет довольно хорошее представление о том, что она делает под одеялом.

0 голосов
/ 01 апреля 2012

У вас есть несколько вариантов API для iOS для сетевых сокетов. Если у вас есть код для существующего Unix-сервера сокетов BSD, который делает то, что вы хотите, я бы создал вторичный поток и просто использовал бы существующий код в этом потоке. Наилучшие инструкции по использованию сокетов BSD - Сетевое программирование Unix от Стивенса .

Если это новый код, который работает только на iOS, я согласен с Робом Нейпером в том, что CocoaAsyncSocket - разумный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...