Document how to interrupt `PacketPeerUDP.wait()`

This closes #36335.
This commit is contained in:
Hugo Locurcio 2020-10-15 10:10:32 +02:00
parent 075a8baa36
commit 25777488fd
No known key found for this signature in database
GPG Key ID: 39E8F8BE30B0A49C
1 changed files with 13 additions and 1 deletions

View File

@ -25,7 +25,7 @@
</argument> </argument>
<description> <description>
Calling this method connects this UDP peer to the given [code]host[/code]/[code]port[/code] pair. UDP is in reality connectionless, so this option only means that incoming packets from different addresses are automatically discarded, and that outgoing packets are always sent to the connected address (future calls to [method set_dest_address] are not allowed). This method does not send any data to the remote peer, to do that, use [method PacketPeer.put_var] or [method PacketPeer.put_packet] as usual. See also [UDPServer]. Calling this method connects this UDP peer to the given [code]host[/code]/[code]port[/code] pair. UDP is in reality connectionless, so this option only means that incoming packets from different addresses are automatically discarded, and that outgoing packets are always sent to the connected address (future calls to [method set_dest_address] are not allowed). This method does not send any data to the remote peer, to do that, use [method PacketPeer.put_var] or [method PacketPeer.put_packet] as usual. See also [UDPServer].
Note: Connecting to the remote peer does not help to protect from malicious attacks like IP spoofing, etc. Think about using an encryption technique like SSL or DTLS if you feel like your application is transferring sensitive information. [b]Note:[/b] Connecting to the remote peer does not help to protect from malicious attacks like IP spoofing, etc. Think about using an encryption technique like SSL or DTLS if you feel like your application is transferring sensitive information.
</description> </description>
</method> </method>
<method name="get_packet_ip" qualifiers="const"> <method name="get_packet_ip" qualifiers="const">
@ -123,6 +123,18 @@
</return> </return>
<description> <description>
Waits for a packet to arrive on the listening port. See [method listen]. Waits for a packet to arrive on the listening port. See [method listen].
[b]Note:[/b] [method wait] can't be interrupted once it has been called. This can be worked around by allowing the other party to send a specific "death pill" packet like this:
[codeblock]
# Server
socket.set_dest_address("127.0.0.1", 789)
socket.put_packet("Time to stop".to_ascii())
# Client
while socket.wait() == OK:
var data = socket.get_packet().get_string_from_ascii()
if data == "Time to stop":
return
[/codeblock]
</description> </description>
</method> </method>
</methods> </methods>