Вам нужно сделать себя делегатом и обработать метод onSocket: willDisconnectWithError:.Соединение является полностью асинхронным, поэтому, если не возникает фундаментальная системная проблема (сокеты отключены, вы передали неверный адрес и т. Д.), Этот вызов всегда будет успешным, пока попытка соединения с сокетом происходит в фоновом режиме.
Если эта попытка не удалась, будет вызван метод onSocket: willDisconnectWithError: Delegate, чтобы вы могли знать, что попытка подключения не удалась.
Я не уверен, почему, но класс AsyncSocket считает поток kCFStreamStatusErrorстатус «подключен», поэтому я подозреваю, что именно поэтому он отображается как подключенный.Вы можете следить за всем этим в источнике AsyncSocket.