class-description NEWS COMMUNITY STORE TUTORIALS SIGN UP LOGIN LOGOUT ROKOJORI NEWSLETTER SIGN UP LOGIN LOGOUT NEWS COMMUNITY STORE TUTORIALS TOGGLE FULLSCREEN VOLLBILD AN/AUS ObjectRefCountedPacketPeer PacketPeerUDP
UDP packet peer.

UDP packet peer. Can be used to send raw UDP packets as well as Variants.

Error bind<>( int port=, port:int=, String bind_address="*", bind_address:String="*", int recv_buf_size=65536, recv_buf_size:int=65536, ):Error

Binds this PacketPeerUDP to the specified port and bind_address with a buffer size recv_buf_size, allowing it to receive incoming packets.

If bind_address is set to "*" (default), the peer will be bound on all available addresses (both IPv4 and IPv6).

If bind_address is set to "0.0.0.0" (for IPv4) or "::" (for IPv6), the peer will be bound to all available addresses matching that IP type.

If bind_address is set to any valid address (e.g. "192.168.1.101", "::1", etc), the peer will only be bound to the interface with that addresses (or fail if no interface with the given address exists).

void close<>():void

Closes the PacketPeerUDP's underlying UDP socket.

Error connect_to_host<>( String host=, host:String=, int port=, port:int=, ):Error

Calling this method connects this UDP peer to the given host/port 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 set_dest_address are not allowed). This method does not send any data to the remote peer, to do that, use PacketPeer.put_var or 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 TLS or DTLS if you feel like your application is transferring sensitive information.

int get_local_port<>():int

Returns the local port to which this peer is bound.

String get_packet_ip<>():String

Returns the IP of the remote peer that sent the last packet(that was received with PacketPeer.get_packet or PacketPeer.get_var).

int get_packet_port<>():int

Returns the port of the remote peer that sent the last packet(that was received with PacketPeer.get_packet or PacketPeer.get_var).

bool is_bound<>():bool

Returns whether this PacketPeerUDP is bound to an address and can receive packets.

bool is_socket_connected<>():bool

Returns true if the UDP socket is open and has been connected to a remote address. See connect_to_host.

Error join_multicast_group<>( String multicast_address=, multicast_address:String=, String interface_name=, interface_name:String=, ):Error

Joins the multicast group specified by multicast_address using the interface identified by interface_name.

You can join the same multicast group with multiple interfaces. Use IP.get_local_interfaces to know which are available.

Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE permission for multicast to work.

Error leave_multicast_group<>( String multicast_address=, multicast_address:String=, String interface_name=, interface_name:String=, ):Error

Removes the interface identified by interface_name from the multicast group specified by multicast_address.

void set_broadcast_enabled<>( bool enabled=, enabled:bool=, ):void

Enable or disable sending of broadcast packets (e.g. set_dest_address("255.255.255.255", 4343). This option is disabled by default.

Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE permission and this option to be enabled to receive broadcast packets too.

Error set_dest_address<>( String host=, host:String=, int port=, port:int=, ):Error

Sets the destination address and port for sending packets and variables. A hostname will be resolved using DNS if needed.

Note: set_broadcast_enabled must be enabled before sending packets to a broadcast address (e.g. 255.255.255.255).

Error wait<>():Error

Waits for a packet to arrive on the bound address. See bind.

Note: 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:

socket = PacketPeerUDP.new() # Server socket.set_dest_address("127.0.0.1", 789) socket.put_packet("Time to stop".to_ascii_buffer()) # Client while socket.wait() == OK: var data = socket.get_packet().get_string_from_ascii() if data == "Time to stop": return



All social media brands are registrated trademarks and belong to their respective owners.





CONTACT IMPRINT TERMS OF USE PRIVACY © ROKOROJI ® 2021 rokojori.com
CONTACT IMPRINT TERMS OF USE PRIVACY © ROKOROJI ® 2021 rokojori.com
We are using cookies on this site. Read more... Wir benutzen Cookies auf dieser Seite. Mehr lesen...