StreamPeer
继承: RefCounted < Object
派生: StreamPeerBuffer, StreamPeerExtension, StreamPeerGZIP, StreamPeerTCP, StreamPeerTLS
与流交互的抽象基类。
描述
StreamPeer 是一种抽象基类,常用于流式协议(例如 TCP)。它提供了通过流发送数据的 API,将数据作为原始数据或字符串处理。
注意:导出到安卓时,在导出项目或使用一键部署之前,请务必在安卓导出预设中,开启 INTERNET
权限。否则,任何类型的网络通信都将被 Android 阻止。
属性
|
方法
get_8 ( ) | |
get_16 ( ) | |
get_32 ( ) | |
get_64 ( ) | |
get_available_bytes ( ) const | |
get_double ( ) | |
get_float ( ) | |
get_partial_data ( int bytes ) | |
get_string ( int bytes=-1 ) | |
get_u8 ( ) | |
get_u16 ( ) | |
get_u32 ( ) | |
get_u64 ( ) | |
get_utf8_string ( int bytes=-1 ) | |
void | |
void | |
void | |
void | |
put_data ( PackedByteArray data ) | |
void | put_double ( float value ) |
void | |
put_partial_data ( PackedByteArray data ) | |
void | put_string ( String value ) |
void | |
void | |
void | |
void | |
void | put_utf8_string ( String value ) |
void |
属性说明
bool big_endian = false
为 true
时,该 StreamPeer 进行编解码时会使用大端格式。
方法说明
int get_8 ( )
从流中获取有符号字节。
int get_16 ( )
从流中获取有符号 16 位值。
int get_32 ( )
从流中获取有符号 32 位值。
int get_64 ( )
从流中获取有符号 64 位值。
int get_available_bytes ( ) const
返回该 StreamPeer 可用的字节数。
返回接收到的块数据。可以使用 bytes
参数设置所需接收的字节数。如果可用的字节数不足,函数会阻塞至接收到所需字节数为止。该函数返回两个值,一个 Error 错误码以及一个数据数组。
float get_double ( )
从流中获取一个双精度浮点数。
float get_float ( )
从流中获取一个单精度浮点数。
Array get_partial_data ( int bytes )
返回接收到的块数据。可以使用“bytes”参数设置所需接收的字节数。如果可用的字节数不足,函数会阻塞至接收到所需字节数为止。该函数返回两个值,一个 Error 错误码以及一个数据数组。
String get_string ( int bytes=-1 )
从流中获取一个字节长度为 bytes
的 ASCII 字符串。如果 bytes
为负(默认),会按照 put_string 的逆向操作从流中读取长度。
int get_u8 ( )
从流中获取一个无符号字节。
int get_u16 ( )
从流中获取一个无符号 16 位值。
int get_u32 ( )
从流中获取一个无符号 32 位值。
int get_u64 ( )
从流中获取一个无符号 64 位值。
String get_utf8_string ( int bytes=-1 )
从流中获取一个字节长度为 bytes
的 UTF-8 字符串(将发送的字符串解码为 UTF-8)。如果 bytes
为负(默认),会按照 put_utf8_string 的逆向操作从流中读取长度。
Variant get_var ( bool allow_objects=false )
从流中获取一个 Variant。如果 allow_objects
为 true
,则会允许解码出对象。
内部实现时,使用的解码机制与 @GlobalScope.bytes_to_var 方法相同。
警告:反序列化的对象可能包含会被执行的代码。如果序列化的对象来自不可信的来源,请勿使用该选项,以免造成远程代码执行等安全威胁。
void put_8 ( int value )
向流中放入一个有符号字节。
void put_16 ( int value )
向流中放入一个有符号 16 位值。
void put_32 ( int value )
向流中放入一个有符号 32 位值。
void put_64 ( int value )
向流中放入一个有符号 64 位值。
Error put_data ( PackedByteArray data )
通过连接发送块数据,数据完成发送前会阻塞。该函数返回 Error 错误码。
void put_double ( float value )
向流中放入一个双精度浮点数。
void put_float ( float value )
向流中放入一个单精度浮点数。
Array put_partial_data ( PackedByteArray data )
通过连接发送数据。如果数据无法一次性发完,则仅会发送部分数据。该函数返回两个值,一个 Error 错误码以及一个整数,表示实际发送的数据量。
void put_string ( String value )
向流中放入一个以零结尾的 ASCII 字符串,会前置一个表示其大小的 32 位无符号整数。
注意:如果要放置 ASCII 字符串,而不前置大小,可以使用 put_data:
GDScriptC#
put_data("Hello world".to_ascii_buffer())
PutData("Hello World".ToAsciiBuffer());
void put_u8 ( int value )
向流中放入一个无符号字节。
void put_u16 ( int value )
向流中放入一个无符号 16 位值。
void put_u32 ( int value )
向流中放入一个无符号 32 位值。
void put_u64 ( int value )
向流中放入一个无符号 64 位值。
void put_utf8_string ( String value )
向流中放入一个以零结尾的 UTF-8 字符串,前置一个表示其大小的 32 位无符号整数。
注意:如果要放置 UTF-8 字符串,而不前置其大小,可以使用 put_data:
GDScriptC#
put_data("Hello world".to_utf8_buffer())
PutData("Hello World".ToUtf8Buffer());
void put_var ( Variant value, bool full_objects=false )
向流中放入一个 Variant。如果 full_objects
为 true
,则会允许将对象编码(其中可能包含代码)。
内部实现时,使用的编码机制与 @GlobalScope.var_to_bytes 方法相同。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.