Child pages
  • udp

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{hiddendiv:style=display:none}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACTAUTO CHANGES FROMUPDATE THE PAGECONTENT ANDTHROUGH MERGETHE THEM BACK INTO SERVOY SOURCE{hiddenDOC GENERATOR{div}
{sub-sectiondiv:id=description|text=}{sub-sectiondiv}\\ 

{table:id=|class=servoy sReturnTypes}{tr:style=height: 30px;}{th}Return Types{th}{tr}{tr}{td}{span:class=sWordList}[JSPacket]{span}{td}{tr}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[JSPacket]{td}{td}[#createNewPacket]\()
Create a new empty packet.{td}{tr}{tbody}{tbody}{tr}{td}[JSPacket]{td}{td}[#getReceivedPacket]\()
Get a packet from receive buffer, read buffer until empty (null is returned).{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#sendPacket]\(destIpOrHostname, packet)
Send a packet.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#sendPacket]\(destIpOrHostname, packet, port)
Send a packet on another port.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#startSocket]\(port_number, method_to_call_when_packet_received_and_buffer_is_empty)
Start a UDP socket for a port.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#stopSocket]\()
Stop the UDP socket for a port.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#testPacket]\(packet)
Put a test packet in the receive buffer to test your method call and getReceivedPacket.{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=createNewPacket|class=node}{tr:id=name}{td}h6.createNewPacket{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPacket]{span}{span:id=iets|style=float: left; font-weight: bold;}createNewPacket{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:createNewPacket_des|trigger=button|text=}{sub-section}{sub-section:createNewPacket_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc*Returns*\\{div:class=sIndent}[JSPacket]{div}{td}{tr}{tr:id=sam}{td}*SinceSample*\\{sub-section:createNewPacket_snc|trigger=button|text=}{sub-section}{sub-section:createNewPacket_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:createNewPacket_prs|trigger=button|text=}{sub-section}{sub-section:createNewPacket_prs|trigger=none|class=sIndent}{sub-section}div:class=sIndent}{code:language=javascript}
var packet = plugins.udp.createNewPacket()
packet.writeUTF('hello world!')//writes UTF
packet.writeInt(12348293)//writes 4 bytes
packet.writeShort(14823)//writes 2 bytes
packet.writeByte(123)//writes 1 byte
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getReceivedPacket}{tr:id=name}{td}h6.getReceivedPacket{td}{tr}{builder-show}{tr:id=retsig}{td}*Returns*\\{sub-section:createNewPacket_ret|trigger=button|text=}{sub-section}{sub-section:createNewPacket_ret|trigger=none|class=sIndent}[JSPacket]{sub-section{span:style=margin-right: 5px;}[JSPacket]{span}{span:style=font-weight: bold;}getReceivedPacket{span}{span}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeret}{td}*Also seeReturns*\\{sub-section:createNewPacket_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:createNewPacket_see|trigger=none}{sub-section}{[JSPacket]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksam}{td}*External linksSample*\\{sub-section:createNewPacket_link|trigger=button|text=}{sub-section}{divdiv:class=sIndent}{sub-section:createNewPacket_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:createNewPacket_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:createNewPacket_sam|trigger=none}{code:language=javascript}
varcode:language=javascript}
var packet = null
while( ( packet = plugins.udp.createNewPacketgetReceivedPacket() ) packet.writeUTF('hello world!')//writes UTF
packet.writeInt(12348293)//writes 4 bytes
packet.writeShort(14823)//writes 2 bytes
packet.writeByte(123)//writes 1 byte!= null)
{
	var text = packet.readUTF()
	var count = packet.readInt()
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getReceivedPacket|class=nodesendPacket-String_JSPacket}{tr:id=name}{td}h6.getReceivedPacketsendPacket{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPacketBoolean]{span}{span:id=iets|style=float: left; font-weight: bold;}getReceivedPacketsendPacket{span}{span:id=iets|style=float: left;}\(destIpOrHostname, packet){span}{td}{tr}{builder-show:permission=edit}{tr:id=desprs}{td}{sub-section:getReceivedPacket_des|trigger=button|text=}{sub-section}{sub-section:getReceivedPacket_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit*Parameters*\\{div:class=sIndent}\{[String]} destIpOrHostname -- the ip of the destination or the hostname
\{[JSPacket]} packet -- the JSPacket to send
{div}{td}{tr}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:getReceivedPacket_snc|trigger=button|text=}{sub-section}{sub-section:getReceivedPacket_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getReceivedPacket_prs|trigger=button|text=}{sub-section}{sub-section:getReceivedPacket_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-showdiv:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var packet = plugins.udp.createNewPacket()
packet.writeUTF('hello world!')
plugins.udp.sendPacket('10.0.0.1',packet)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sendPacket-String_JSPacket_Number}{tr:id=retname}{td}*Returns*\\{sub-section:getReceivedPacket_ret|trigger=button|text=}{sub-section}{sub-section:getReceivedPacket_ret|trigger=none|class=sIndent}[JSPacket]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getReceivedPacket_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getReceivedPacket_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getReceivedPacket_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getReceivedPacket_link|trigger=none}{sub-section}h6.sendPacket{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}sendPacket{span}{span}\(destIpOrHostname, packet, port){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} destIpOrHostname -- the ip of the destination or the hostname
\{[JSPacket]} packet -- the JSPacket to send
\{[Number]} port -- the port on which to send the packet
{div}{td}{tr}{builder-show}{tr:id=samret}{td}*SampleReturns*\\{sub-section:getReceivedPacket_sam|trigger=button|text=}{sub-section}div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{sub-section:getReceivedPacket_sam|trigger=none}{code:language=javascript}
var packet = null
while( ( packet = plugins.udp.getReceivedPacketcreateNewPacket()
) != null)
{
	var text = packet.readUTF()
	var count = packet.readInt()
}
{code}{sub-sectionpacket.writeUTF('hello world!')
plugins.udp.sendPacket('10.0.0.1',packet, 4321)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sendPacketstartSocket-String_JSPacket|class=nodeNumber_Object}{tr:id=name}{td}h6.sendPacketstartSocket{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}sendPacketstartSocket{span}{span:id=iets|style=float: left;}\(destIpOrHostnameport_number, method_to_call_when_packet_received_and_buffer_is_empty){span}{td}{tr}{builder-showtr:permissionid=editprs}{tr:id=des}{td}{sub-section:sendPacket-String_JSPacket_des|trigger=button|text=}{sub-section}{sub-section:sendPacket-String_JSPacket_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:sendPacket-String_JSPacket_snc|trigger=button|text=}{sub-section}{sub-section:sendPacket-String_JSPacket_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:sendPacket-String_JSPacket_prs|trigger=button|text=}{sub-section}{sub-section:sendPacket-String_JSPacket_prs|trigger=none|class=sIndent}\{[String]} destIpOrHostname -- the ip of the destination or the hostname
\{[JSPacket]} packet -- the JSPacket to send
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:sendPacket-String_JSPacket_ret|trigger=button|text=}{sub-section}{sub-section:sendPacket-String_JSPacket_ret|trigger=none|class=sIndent}[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:sendPacket-String_JSPacket_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sendPacket-String_JSPacket_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:sendPacket-String_JSPacket_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sendPacket-String_JSPacket_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:sendPacket-String_JSPacket_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sendPacket-String_JSPacket_sam|trigger=none}{code:language=javascript}
var packet = plugins.udp.createNewPacket()
packet.writeUTF('hello world!')
plugins.udp.sendPacket('10.0.0.1',packet)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sendPacket-String_JSPacket_Number|class=node}{tr:id=name}{td}h6.sendPacket{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}sendPacket{span}{span:id=iets|style=float: left;}\(destIpOrHostname, packet, port){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:sendPacket-String_JSPacket_Number_des|trigger=button|text=}{sub-section}{sub-section:sendPacket-String_JSPacket_Number_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:sendPacket-String_JSPacket_Number_snc|trigger=button|text=}{sub-section}{sub-section:sendPacket-String_JSPacket_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:sendPacket-String_JSPacket_Number_prs|trigger=button|text=}{sub-section}{sub-section:sendPacket-String_JSPacket_Number_prs|trigger=none|class=sIndent}\{[String]} destIpOrHostname -- the ip of the destination or the hostname
\{[JSPacket]} packet -- the JSPacket to send
\{[Number]} port -- the port on which to send the packet
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:sendPacket-String_JSPacket_Number_ret|trigger=button|text=}{sub-section}{sub-section:sendPacket-String_JSPacket_Number_ret|trigger=none|class=sIndent}[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:sendPacket-String_JSPacket_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sendPacket-String_JSPacket_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:sendPacket-String_JSPacket_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sendPacket-String_JSPacket_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:sendPacket-String_JSPacket_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sendPacket-String_JSPacket_Number_sam|trigger=none}{code:language=javascript}
var packet = plugins.udp.createNewPacket()
packet.writeUTF('hello world!')
plugins.udp.sendPacket('10.0.0.1',packet, 4321)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=startSocket-Number_Object|class=node}{tr:id=name}{td}h6.startSocket{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}startSocket{span}{span:id=iets|style=float: left;}\(port_number, method_to_call_when_packet_received_and_buffer_is_empty){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:startSocket-Number_Object_des|trigger=button|text=}{sub-section}{sub-section:startSocket-Number_Object_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:startSocket-Number_Object_snc|trigger=button|text=}{sub-section}{sub-section:startSocket-Number_Object_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:startSocket-Number_Object_prs|trigger=button|text=}{sub-section}{sub-section:startSocket-Number_Object_prs|trigger=none|class=sIndent}\{[Number]} port_number -- the local port that this UDP socket will bind to.
\{[Object]} method_to_call_when_packet_received_and_buffer_is_empty -- when the socket receives one or more packages, it calls this method once.
The method will no longer be called even if new packages are received \- until a call to UDPProvider#js\_getReceivedPacket() returns null. So you should
consume all available packets before you expect this method to be called again.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:startSocket-Number_Object_ret|trigger=button|text=}{sub-section}{sub-section:startSocket-Number_Object_ret|trigger=none|class=sIndent}[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:startSocket-Number_Object_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:startSocket-Number_Object_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:startSocket-Number_Object_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:startSocket-Number_Object_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:startSocket-Number_Object_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:startSocket-Number_Object_sam|trigger=none}{code:language=javascript}
plugins.udp.startSocket(1234,my_packet_process_method)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stopSocket|class=node}{tr:id=name}{td}h6.stopSocket{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}stopSocket{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:stopSocket_des|trigger=button|text=}{sub-section}{sub-section:stopSocket_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:stopSocket_snc|trigger=button|text=}{sub-section}{sub-section:stopSocket_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:stopSocket_prs|trigger=button|text=}{sub-section}{sub-section:stopSocket_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:stopSocket_ret|trigger=button|text=}{sub-section}{sub-section:stopSocket_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:stopSocket_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:stopSocket_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:stopSocket_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:stopSocket_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:stopSocket_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:stopSocket_sam|trigger=none}{code:language=javascript}
plugins.udp.stopSocket()
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=testPacket-JSPacket|class=node}{tr:id=name}{td}h6.testPacket{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}testPacket{span}{span:id=iets|style=float: left;}\(packet){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:testPacket-JSPacket_des|trigger=button|text=}{sub-section}{sub-section:testPacket-JSPacket_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:testPacket-JSPacket_snc|trigger=button|text=}{sub-section}{sub-section:testPacket-JSPacket_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:testPacket-JSPacket_prs|trigger=button|text=}{sub-section}{sub-section:testPacket-JSPacket_prs|trigger=none|class=sIndent}\{[JSPacket]} packet
{sub-section*Parameters*\\{div:class=sIndent}\{[Number]} port_number -- the local port that this UDP socket will bind to.
\{[Object]} method_to_call_when_packet_received_and_buffer_is_empty -- when the socket receives one or more packages, it calls this method once.
The method will no longer be called even if new packages are received \- until a call to UDPProvider#js\_getReceivedPacket() returns null. So you should
consume all available packets before you expect this method to be called again.
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
plugins.udp.startSocket(1234,my_packet_process_method)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=stopSocket}{tr:id=name}{td}h6.stopSocket{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}stopSocket{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:testPacket-JSPacket_ret|trigger=button|text=}{sub-section}{sub-section:testPacket-JSPacket_ret|trigger=none|class=sIndent}[Boolean]{sub-sectiondiv:class=sIndent}{code:language=javascript}
plugins.udp.stopSocket()
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{builder-showtbody:permissionid=edittestPacket-JSPacket}{tr:id=seename}{td}*Also see*\\{sub-section:testPacket-JSPacket_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:testPacket-JSPacket_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edith6.testPacket{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}testPacket{span}{span}\(packet){span}{td}{tr}{tr:id=linkprs}{td}*External linksParameters*\\{sub-section:testPacket-JSPacket_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:testPacket-JSPacket_link|trigger=none}{sub-section}div:class=sIndent}\{[JSPacket]} packet
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean]{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:testPacket-JSPacket_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:testPacket-JSPacket_sam|trigger=none}{code:language=javascript}
var packet = plugins.udp.createNewPacket()
packet.writeUTF('hello world!')
plugins.udp.testPacket(packet)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}