roDataGramSocket
The roDataGramSocket component enables Brightscript apps to send and receive UDP packets. The interface is modeled on and works much like standard Berkeley sockets.
This object is created without any arguments:
CreateObject("roDataGramSocket")
Example
' UDP 2-way peer-to-peer asynchronous comm on port 54321
' periodically sends out a message to a specific address and port
' prints any message it receives
Function UDPPeer()
msgPort = createobject("roMessagePort")
udp = createobject("roDatagramSocket")
udp.setMessagePort(msgPort) 'notifications for udp come to msgPort
addr = createobject("roSocketAddress")
addr.setPort(54321)
udp.setAddress(addr) ' bind to all host addresses on port 54321
addr.SetHostName("10.1.1.1")
udp.setSendToAddress(addr) ' peer IP and port
udp.notifyReadable(true)
timeout = 1 * 10 * 1000 ' ten seconds in milliseconds
deviceName = Createobject("roDeviceInfo").GetFriendlyName()
message = "Datagram from " + deviceName
udp.sendStr(message)
continue = udp.eOK()
While continue
event = wait(timeout, msgPort)
If type(event)="roSocketEvent"
If event.getSocketID()=udp.getID()
If udp.isReadable()
message = udp.receiveStr(512) ' max 512 characters
print "Received message: '"; message; "'"
End If
End If
Else If event=invalid
print "Timeout"
udp.sendStr(message) ' periodic send
End If
End While
udp.close() ' would happen automatically as udp goes out of scope
End Function
GetDeviceUniqueId() was deprecated in Spring OS 2019.
Supported interfaces
Some legacy Roku OS versions may implement ifSocketCastOption as ifSocketCast.
Supported events
Updated 3 months ago
