NSSocketPortNameServer
Этот сервер имен порта берет и возвращает экземпляры NSSocketPort.
Функциональность удаления порта поддерживается removePortForName:
метод и должен использоваться для удаления недопустимых портов сокета.
В отличие от других серверов имен порта, NSSocketPortNameServer может работать по сети. Путем регистрации портов сокета Вы делаете их доступными для других компьютеров в локальной сети без жесткого кодирования номера порта TCP. Клиенты просто должны знать имя порта.
NSPortNameServer реализован с помощью NSNetService
и порты регистров в домене локальной сети. Зарегистрированное имя порта должно быть уникальным в локальном домене, не только локальном узле. Сервер имен только поддерживает TCP/IP (или IPv4 или IPv6) сокеты.
Оператор импорта
Не применимый
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает совместно используемый сервер имен порта сокета.
Объявление
Objective C
+ (id)sharedInstance
Возвращаемое значение
Единственный экземпляр
NSSocketPortNameServer
в котором Вы регистрируетесь и ищетеNSSocketPort
объекты.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Ищет и возвращает порт, зарегистрированный под указанным именем на локальном узле.
Параметры
portName
Имя требуемого порта.
Возвращаемое значение
Порт связался с
portName
на локальном узле. Возвратыnil
если не существует никакой такой порт.Обсуждение
Вызывает
portForName:host:nameServerPortNumber:
сnil
как имя хоста и 0 как номер порта сервера имен.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Ищет и возвращает порт, зарегистрированный под указанным именем на указанном узле.
Параметры
portName
Имя требуемого порта.
hostName
Имя узла.
hostName
имя Интернет-домена (например, “sales.anycorp.com
”). ЕслиhostName
nil
или пустой, локальный узел проверяется.Возвращаемое значение
Порт связался с
portName
на узлеhostName
. Возвратыnil
если не существует никакой такой порт.Обсуждение
Вызывает
portForName:host:nameServerPortNumber:
с 0 как номер порта сервера имен.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Ищет и возвращает порт, зарегистрированный под указанным именем на указанном узле.
Объявление
Параметры
portName
Имя требуемого порта.
hostName
Имя узла.
hostName
имя Интернет-домена (например, “sales.anycorp.com
”) или IP-адрес (IPv4 или IPv6). ЕслиhostName
nil
или пустой, локальный узел проверяется. ЕслиhostName
@”*”
, все узлы в локальной сети проверяются.portNumber
portNumber
параметр проигнорирован.Возвращаемое значение
Порт связался с
portName
на узлеhostName
. Возвратыnil
если не существует никакой такой порт.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Регистрирует данный порт как сетевую службу с указанным именем в локальном домене.
Параметры
port
Порт для предоставления доступа доступным.
portName
Имя для порта.
Возвращаемое значение
YES
true
в случае успеха,NO
false
иначе.Обсуждение
Вызывает
registerPort:name:nameServerPortNumber:
с 0 как номер порта сервера имен.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.2 и позже.
-
Регистрирует данный порт как сетевую службу с указанным именем в локальном домене.
Объявление
Параметры
port
Порт для предоставления доступа доступным.
portName
Имя для порта.
portNumber
portNumber
параметр проигнорирован.Возвращаемое значение
YES
true
в случае успеха,NO
false
иначе.Специальные замечания
Если Ваше приложение уже зарегистрировало порт под именем
portName
, этот метод заменяет егоport
.Если локальному домену уже назвали порт
portName
зарегистрированный, этот метод мог возвратитьсяYES
true
прежде чем коллизия имени обнаруживается. Для обнаружения потенциальной коллизии имени можно вызватьportForName:host:
с ahost
параметр@"*"
протестировать еслиportName
уже взят. Это, однако, оставляет состояние состязания в чем, другой процесс может зарегистрировать порт подportName
послеportForName:host:
возвраты, но перед регистрациейport
. Если это - недопустимый риск для Вашего приложения, можно также вызватьportForName:host:
некоторый конечный промежуток времени после регистрации Вашего порта, чтобы протестировать, если Вы возвращаете тот же порт.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Не регистрирует порт для имени на локальном узле.
Объявление
Objective C
- (BOOL)removePortForName:(NSString *)
portName
Параметры
portName
Имя порта, чтобы не зарегистрироваться.
Возвращаемое значение
YES
true
в случае успеха, иначеNO
false
.Обсуждение
Если работа успешна, порт больше не может искаться с помощью имени
portName
. Другие приложения, уже имеющие ссылку на порт, могут продолжать использовать его, пока это не становится недопустимым.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращается номер порта раньше связывался с сервером имен.
Объявление
Objective C
@property uint16_t defaultNameServerPortNumber
Возвращаемое значение
Номер порта раньше связывался с сервером имен. Это значение в настоящее время игнорируется.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает номер порта по умолчанию, используемый для контакта с сервером имен.
Объявление
Objective C
@property uint16_t defaultNameServerPortNumber
Параметры
portNumber
Новый номер порта раньше связывался с сервером имен. Это значение в настоящее время игнорируется.
Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
См. также