Да дальше уже наверное смысла нет… Были свои некоторые соображения просто, но не был до конца уверен. Сейчас утвердился и можно заниматься реализацией. А SherlockListFragment, к сожалению, не очень подходит, так же как и нет необходимости в БД. Но в любом случае, спасибо за ценную информацию.
Не туда воткнул.
Ну да, в целом оно, вроде. Спасибо!
Насчет возврата данных в активити — не совсем понятно как можно реализовать. В одном активити надо заполнять сложный ListView с кастомным адаптером, в другом — ImageView, в третьем набор TextView с выставлением visibility=gone при определенных условиях.
Да, то что надо, спасибо. Возможно, кому-то еще понадобится, приведу ссылку именно с возможностью открытия по оттягиванию: github.com/jfeinstein10/SlidingMenu
Мда, что-то еще проблемка объявилась: если запустить на Андроиде точку доступа и соединять устройства через нее, то интерфейс не видится и при попытке отправки получаем ошибку «Network is unreachable». Если же принудительно заставить его инициализироваться на нужном интерфейсе, то он не может присоединиться к группе с ошибкой «setsockopt failed: ENODEV (No such device)». Правда, исходящие пакеты при таком подходе все же работают. В связи с этим вопрос: а не существует ли какой-то другой альтернативной технологии для такого случая? Может быть есть какой-нибудь зарезервированный адрес, куда можно подключаться всем экземплярам программы и обмениваться адресами? Ну или еще что-то?
Ну с нюансами я поковыряюсь, мне бы просто какую-нибудь мысль от человека понимающего в сетях. В эмуляторе это никак не оттестить, насколько понимаю… Может и баг, но по сети жалоб не находится. Снял вот свойства сокета, вроде все нормально:
multicastSocket.getBroadcast() — true
multicastSocket.getChannel() — null
multicastSocket.getInetAddress() — null
multicastSocket.getLocalAddress() — /::
multicastSocket.getLocalPort() — 3301
multicastSocket.getLocalSocketAddress() — /:::3301
multicastSocket.getPort() — -1
multicastSocket.getReceiveBufferSize() — 110592
multicastSocket.getRemoteSocketAddress() — null
multicastSocket.getReuseAddress() — true
multicastSocket.getSendBufferSize() — 110592
multicastSocket.getSoTimeout() — 0
multicastSocket.getTrafficClass() — 0
TTL везде равен 1. IP адреса — 192.168.123.159 у компа и 192.168.123.134 у андроида.
Понял, спасибо. А в какую сторону можно поискать, если часть входящих датаграмм бессистемно теряется? Платформа — Android, Java. Притом, в сниффере на Андроид видно, что они приходят. А в программе то появляются, то нет. Буду признателен любой теории.
Да, действительно, такая организация вполне работоспособна. А откуда берется адрес группы? Я могу взять любой адрес «от балды» из диапазона 224.0.0.0 до 239.255.255.255, либо есть какой-то алгоритм на этот счет?
Спасибо, вроде что-то накопал. А интерфейс в IP_ADD_MEMBERSHIP указывать обязательно? Можно ли сделать так, чтобы автоматом рассылалось по всем интерфейсам?
А у вас не найдется примерчика по этой теме? Я ничего не имею против использования другой технологии, если это необходимо и обоснованно. Мне же нужно просто иметь возможность программе-клиенту находить программу-сервер в локальной сети.