2013-01-31 18 views
6

przepraszam, jeśli to jest banalne pytanie.Przekazuję wiadomość do wszystkich dostępnych maszyn pod WiFi

Niedawno zacząłem robić programowanie na Androida i piszę prostą aplikację, która pozwala używać urządzenia z Androidem jako kontrolera do komputera z systemem Windows. W szczególności pozwala użytkownikowi na takie czynności, jak wyłączenie komputera, uśpienie, ponowne uruchomienie itp. Obecnie korzystam z biblioteki Pythona o nazwie CherryPy jako serwera na komputerze z systemem Windows, aby wykonywać rzeczywiste wywołania win32api w celu wykonania pożądanego funkcjonować. Nie jestem pewien, w jaki sposób odkryć (dynamicznie), który komputer w sieci faktycznie hostuje serwer. Wszystko działa dobrze, jeśli zakodowuję mój publiczny komputer IP w aplikacji na Androida, ale oczywiście jest to znacznie mniej niż idealne. Rozważałem, aby użytkownik ręcznie wprowadził do aplikacji publiczny adres IP swojego komputera, ale jeśli istnieje sposób, aby na przykład wysłać szybką wiadomość do wszystkich komputerów w sieci Wi-Fi i sprawdzić wcześniejszą odpowiedź, którą mój serwer w Pythonie wyśle na zewnątrz, byłoby wspaniale. Czy to jest możliwe?

Z góry dzięki chłopaki.

Odpowiedz

1

Napisz swoją aplikację, korzystając z frameworka . AllJoyn zajmie się tymi szczegółami.

2

Spróbuj wysłać pakiet UDP na specjalny adres rozgłoszeniowy 255.255.255.255. Każde urządzenie w sieci powinno otrzymać kopię tego pakietu (z wyłączeniem firewalli), a Ty możesz ustawić, aby serwer odpowiadał na pakiet z jego tożsamością.

+0

Idealnie byłoby zrobić to na wyższym poziomie - korzystałem z metod HTTP, a nie z poziomu pakietów. Czy byłoby to możliwe przy tej wyższej abstrakcji? –

Powiązane problemy