PacketPeer
Inherited By: NetworkedMultiplayerPeer, PacketPeerDTLS, PacketPeerGDNative, PacketPeerStream, PacketPeerUDP, WebRTCDataChannel, WebSocketPeer
基于包的协议的抽象和基类。
描述
PacketPeer是基于数据包的协议(如UDP)的抽象和基类。它提供了一个API,用于发送和接收作为原始数据或变量的数据包。这使得通过协议传输数据变得很容易,而不必将数据编码为低级字节或担心网络顺序。
属性
| ||
|
方法
get_available_packet_count ( ) const | |
get_packet ( ) | |
get_packet_error ( ) const | |
put_packet ( PoolByteArray buffer ) | |
属性说明
- bool allow_object_decoding
Default |
|
Setter | set_allow_object_decoding(value) |
Getter | is_object_decoding_allowed() |
已废弃。 你应该使用 get_var
和 put_var
参数来代替它。
如果true
,多人游戏API将允许在RPC/RSETs期间对对象进行编码和解码。
警告: 反序列化的对象可能包含会被执行的代码。如果序列化的对象来自不受信任的来源,请不要使用这个选项,以避免潜在的安全威胁,如远程代码执行。
- int encode_buffer_max_size
Default |
|
Setter | set_encode_buffer_max_size(value) |
Getter | get_encode_buffer_max_size() |
编码Variant时允许的最大缓冲区大小。提高此值以支持更大的内存分配。
put_var方法在堆栈上分配内存,使用的缓冲区将自动增长到最接近的二次方,以匹配Variant的大小。如果Variant大于 encode_buffer_max_size
,则该方法将以@GlobalScope.ERR_OUT_OF_MEMORY出错。
方法说明
- int get_available_packet_count ( ) const
返回环形缓冲区中当前可用的数据包数。
- PoolByteArray get_packet ( )
获取原始数据包。
- Error get_packet_error ( ) const
返回最后接收的数据包的错误状态(通过get_packet和get_var)。
获取一个变量。如果allow_objects
或 allow_object_decoding为true
,则允许对对象进行解码。
警告:反序列化对象可能包含执行的代码。如果序列化对象来自不受信任的源,请不要使用此选项,以避免潜在的安全威胁,如远程代码执行。
- Error put_packet ( PoolByteArray buffer )
发送一个原始数据包。
将Variant作为数据包发送。如果full_objects
或 allow_object_decoding为true
,则允许对对象进行编码(并且可能包含代码)。