Я провел целый день, создавая систему между моим Mac и iPhone, где я использовал cocoaasyncsocket , чтобы создать сервер прослушивания на моем Mac и клиент на моем iPhone. Основная идея состоит в том, чтобы оставить приложение на Mac работающим, когда компьютер включен, а затем, когда я хочу передать данные из приложения iPhone, запустить приложение, когда оно подключается и отправляет данные ... У меня эта система работает точно как я хочу, чтобы он функционировал, но у меня есть 1 проблема, которую я пытался решить в течение примерно 4 часов!
Я хотел создать что-то, что сканирует мою беспроводную сеть для моего mac с запущенным слушателем ... Я думал, что это будет просто, но я ошибался. Я искал высоко и низко, но мне не повезло, и в качестве последнего средства я использую stackoverflow.
Мой текущий план состоял в том, чтобы «автоматически сканировать» путем получения внутреннего IP-адреса iPhone (т.е. 192.168.1.94), а затем использовать его, чтобы выяснить, какими будут другие IP-адреса в сети (192.168.1.0-254), теперь я знаю, какие IP-адреса нужно сканировать, я могу просмотреть каждый из них и проверить, открыт ли порт / я получил ответ.
Теперь я хочу сделать это как можно быстрее, однако я не смог получить НИЧЕГО, чтобы дать мне точные результаты ...
Использование connectToAddress:error:
в cocoaasyncsocket просто вернет true для каждого из 255 различных IP-адресов, как и любые другие функции достижимости, с которыми я столкнулся ... Я читал, что это потому, что они проверяют только посмотрите, установлено ли соединение, и не волнует, что происходит на другом конце, поэтому мне нужно подумать о чем-то еще.
Мое единственное другое решение, о котором я могу подумать, - это, возможно, пропинговать каждый внутренний IP-адрес и посмотреть, получаю ли я ответ, но я не уверен, что это займет слишком много времени, чтобы пройти через 255 IP-адресов. и затем, как только я получу, какие IP-адреса активны, мне все равно придется проверить, открыт ли порт каким-либо образом: /
Если кто-нибудь здесь знает, как это можно сделать, или знает, как лучше проверить наличие открытого порта (я не очень хорошо разбираюсь в сетях), я был бы ОЧЕНЬ благодарен.
Спасибо за чтение,
Ли