NetworkedMultiplayerENet¶
Inherits: NetworkedMultiplayerPeer < PacketPeer < Reference < Object
类别: 核心
属性¶
假 |
||
3 |
||
0 |
||
-1 |
方法¶
无效 |
close_connection ( int wait_usec=100 ) |
create_client ( String address, int port, int in_bandwidth=0, int out_bandwidth=0, int client_port=0 ) |
|
create_server ( int port, int max_clients=32, int in_bandwidth=0, int out_bandwidth=0 ) |
|
无效 |
disconnect_peer ( int id, bool now=false ) |
get_last_packet_channel ( ) const |
|
get_packet_channel ( ) const |
|
get_peer_address ( int id ) const |
|
get_peer_port ( int id ) const |
|
无效 |
set_bind_ip ( String ip ) |
枚举¶
枚举 CompressionMode :
COMPRESS_NONE = 0 ---无压缩。它使用的带宽最多,但对CPU资源的需求最少。
COMPRESS_RANGE_CODER = 1 ——ENET的内置范围编码。
COMPRESS_FASTLZ = 2 --- FastLZ 压缩。此选项使用的CPU资源比 COMPRESS_ZLIB 以牺牲更多带宽为代价。
COMPRESS_ZLIB = 3 --- Zlib 压缩。此选项使用的带宽比 COMPRESS_FASTLZ 以牺牲更多的CPU资源为代价。
COMPRESS_ZSTD = 4 --- Zstandard 压缩。
描述¶
应传递给的packetpeer实现 SceneTree.network_peer 在初始化为客户机或服务器之后。然后可以通过连接到 SceneTree 信号。
属性描述¶
bool always_ordered
违约 |
假 |
设定器 |
设置“始终”顺序(值) |
吸气剂 |
是否总是订购 |
使用时强制顺序数据包 NetworkedMultiplayerPeer.TRANSFER_MODE_UNRELIABLE (因此行为类似于 NetworkedMultiplayerPeer.TRANSFER_MODE_UNRELIABLE_ORDERED )这是对RPC系统使用排序的唯一方法。
int channel_count
违约 |
3 |
设定器 |
设置频道计数(值) |
吸气剂 |
获取频道计数() |
ENET使用的信道数。通道用于分离不同类型的数据。例如,在可靠的或有序的模式下,包传送顺序是以每个通道为基础来保证的。
CompressionMode compression_mode
违约 |
0 |
设定器 |
设置压缩模式(值) |
吸气剂 |
获取压缩模式() |
用于网络数据包的压缩方法。它们在压缩速度和带宽之间有不同的权衡,如果您使用压缩,可能需要测试哪一个最适合您的用例。
int transfer_channel
违约 |
-1 |
设定器 |
设置传输通道(值) |
吸气剂 |
获取传输通道() |
设置用于传输数据的默认通道。默认情况下,此值为 -1
这意味着网络环境将只使用两个通道,一个用于可靠的,一个用于不可靠的数据包。频道 0
是保留的,不能使用。将此成员设置为介于 0
和 channel_count (排除)将强制ENE使用该通道发送数据。
方法说明¶
void close_connection ( int wait_usec=100 )
关闭连接。如果当前没有建立连接,则忽略。如果这是一个服务器,它会尝试在强制断开所有客户机之前通知所有客户机。如果这是一个客户机,它只需关闭与服务器的连接。
Error create_client ( String address, int port, int in_bandwidth=0, int out_bandwidth=0, int client_port=0 )
创建连接到服务器的客户端 address
使用指定的 port
. 给定地址必须是完全限定的域名(例如 "www.example.com"
)或IPv4或IPv6格式的IP地址(例如 "192.168.1.1"
)这个 port
是服务器正在侦听的端口。这个 in_bandwidth
和 out_bandwidth
参数可用于将传入和传出带宽限制为每秒给定的字节数。默认值0表示无限带宽。请注意,ENET将战略性地将数据包放在对等端之间连接的特定端,以确保对等端的带宽不被淹没。带宽参数还确定连接的窗口大小,该窗口大小限制了在任何给定时间可能传输的可靠数据包的数量。退换商品 @GlobalScope.OK 如果创建了客户端, @GlobalScope.ERR_ALREADY_IN_USE 如果此networkedmultiplayerenet实例已具有打开的连接(在这种情况下,需要调用 close_connection 第一)或 @GlobalScope.ERR_CANT_CREATE 如果无法创建客户端。如果 client_port
如果指定了,客户机还将监听给定的端口;这对于某些NAT遍历技术很有用。
创建通过以下方式监听连接的服务器 port
. 端口必须是0到65535之间的可用、未使用的端口。请注意,1024以下的端口是特权端口,可能需要提升权限,具体取决于平台。要更改服务器侦听的接口,请使用 set_bind_ip . 默认IP是通配符 "*"
,它监听所有可用的接口。 max_clients
是一次允许的最大客户机数量,可以使用最多4096个客户机,但同时客户机的可实现数量可能要低得多,这取决于应用程序。有关带宽参数的更多详细信息,请参阅 create_client . 退换商品 @GlobalScope.OK 如果创建了服务器, @GlobalScope.ERR_ALREADY_IN_USE 如果此networkedmultiplayerenet实例已具有打开的连接(在这种情况下,需要调用 close_connection 第一)或 @GlobalScope.ERR_CANT_CREATE 如果无法创建服务器。
断开给定对等机的连接。如果“现在”设置为 true
,将立即关闭连接,而不刷新排队的消息。
int get_last_packet_channel ( ) const
int get_packet_channel ( ) const
返回将通过 PacketPeer.get_packet
返回给定对等机的IP地址。
返回给定对等机的远程端口。
void set_bind_ip ( String ip )
创建服务器时使用的IP。这被设置为通配符 "*"
默认情况下,它绑定到所有可用接口。给定的IP必须采用IPv4或IPv6地址格式,例如: "192.168.1.1"
.