network_create_socket

此函数为您的游戏创建一个新的客户端套接字,以便通过网络进行通信。

您必须定义套接字类型 (请参阅下面的常量列表),并且函数将返回该套接字的唯一 id( 应在该套接字的所有后续函数调用中使用) 或小于 0 的值如果连接失败。

提示您可以使用IP"127.0.0.1"连接回运行游戏的同一设备。

套接字类型常量
常量描述
network_socket_tcpCreate a socket using TCP.
network_socket_udpCreate a socket using UDP.
network_socket_wsCreate 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套接字类型常量要创建的套接字连接的类型(请参阅上面列出的常量)。

 

返回:

Network Socket ID

 

例子:

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套接字。