Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim PingServer As UDPSocket
Dim IP As ServerSocket
End Sub
Sub Service_Create
PingServer.Initialize("PingServer",1010,200)
IP.Initialize(1010, "IP")
End Sub
Sub Service_Start (StartingIntent As Intent)
Dim Packet As UDPPacket
Packet.Initialize(IP.GetMyWifiIP.GetBytes("UTF8"), GetBroadcastAddress, 1010)
PingServer.Send(Packet)
End Sub
Sub Service_Destroy
StartServiceAt(Me,DateTime.Now+DateTime.TicksPerSecond*30,False)
End Sub
Sub UDP_PacketArrived (Packet As UDPPacket)
Log(BytesToString(Packet.Data,0,Packet.Data.Length,"UTF-8"))
End Sub
Sub GetBroadcastAddress As String
Dim niIterator As JavaObject
niIterator = niIterator.InitializeStatic("java.net.NetworkInterface").RunMethod("getNetworkInterfaces", Null)
Do While niIterator.RunMethod("hasMoreElements", Null)
Dim ni As JavaObject = niIterator.RunMethod("nextElement", Null)
If ni.RunMethod("isLoopback", Null) = False Then
Dim addresses As List = ni.RunMethod("getInterfaceAddresses", Null)
For Each ia As JavaObject In addresses
Dim broadcast As Object = ia.RunMethod("getBroadcast", Null)
If broadcast <> Null Then
Dim b As String = broadcast
Return b.SubString(1)
End If
Next
End If
Loop
Return ""
End Sub