Я потратил целый день на создание системы между моим 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-адреса активны, мне все равно нужно проверить, открыт ли порт как-то: /
Если кто-то здесь знает, как это можно сделать, или знает, как я могу проверить открытый порт (я не очень хорошо разбираюсь в сети), я был бы ОЧЕНЬ благодарен.
Спасибо за чтение,
Лиам