此函数为您的游戏创建一个新的客户端套接字,以便通过网络进行通信。
您必须定义套接字类型 (请参阅下面的常量列表),并且函数将返回该套接字的唯一 id( 应在该套接字的所有后续函数调用中使用) 或小于 0 的值如果连接失败。
提示您可以使用IP"127.0.0.1"连接回运行游戏的同一设备。
套接字类型常量 | |
---|---|
常量 | 描述 |
network_socket_tcp | Create a socket using TCP. |
network_socket_udp | Create a socket using UDP. |
network_socket_ws | Create a WebSocket using TCP. (NOTE: Use Async functions for connecting through WebSockets) |
network_socket_wss * | Create a secure WebSocket using TCP. |
注意 1 还可以使用 URL 中的 wss:// 协议来保护简单网络套接字 (network_socket_ws)。
注意 2* 使用传统 XDK 平台时,安全网络套接字在 UWP 和 Xbox One 上不起作用,但在使用 GDK 时,它们将在这些目标上起作用。
重要信息iOS 14 及更高版本要求您请求多播授权 (com.apple.developer.networking.multicast) 并启用它,以便 发送和接收 多播广播。要让 GameMaker 添加此权利,您应该在 iOS 游戏选项 /tvOS 游戏选项 中 启用广播网络 ( 不这样做会引发错误)。
此外,在首次发送数据包之前,iOS 14 不会向用户显示同意模式对话框。因此,如果 UDP 套接字仅接收,则不会显示警报。解决此问题的一种方法是发送一个空的 " 虚拟 " 数据包,以便触发同意模式。
NOTE There is a maximum limit of 1024 sockets on Windows, macOS and Ubuntu, and 64 sockets on all other platforms.
network_create_socket(type);
参数 | 类型 | 描述 |
---|---|---|
type | 套接字类型常量 | 要创建的套接字连接的类型(请参阅上面列出的常量)。 |
if (os_browser == browser_not_a_browser)
{
client = network_create_socket(network_socket_tcp);
network_connect( client, "192.134.0.1", 6510 );
}
else
{
client = network_create_socket(network_socket_ws);
network_connect_raw_async( client, "192.134.0.1", 6520 );
}
上述代码将检查游戏是否在浏览器中运行,并在尝试通过TCP或Web套接字连接到给定端口上的给定IP地址之前创建新的TCP或Web套接字。