Networking 游戏制造商网络

Networking 游戏制造商网络,networking,game-maker,game-maker-language,game-maker-studio-1.4,Networking,Game Maker,Game Maker Language,Game Maker Studio 1.4,最近,我开始和GameMaker一起玩游戏,制作一个非常简单的游戏,可以在线玩(多人游戏)。我制作了一个非常简单的客户机和服务器。我可以将数据从服务器发送到客户端,但无法将数据从客户端发送到服务器 客户端:(创建事件) (异步网络事件) 由于某些原因,当客户端发送数据时,服务器中的异步网络事件从未触发。消息发生了什么事仅在客户端连接或断开连接时出现,但在发送数据时不会出现。使用几乎完全相同的代码,我可以从服务器发送,但反之亦然。这是代码问题还是服务器/客户端限制?这是服务器端代码: var n_

最近,我开始和GameMaker一起玩游戏,制作一个非常简单的游戏,可以在线玩(多人游戏)。我制作了一个非常简单的客户机和服务器。我可以将数据从服务器发送到客户端,但无法将数据从客户端发送到服务器

客户端:(创建事件)

(异步网络事件)


由于某些原因,当客户端发送数据时,服务器中的异步网络事件从未触发。消息
发生了什么事仅在客户端连接或断开连接时出现,但在发送数据时不会出现。使用几乎完全相同的代码,我可以从服务器发送,但反之亦然。这是代码问题还是服务器/客户端限制?

这是服务器端代码:

var n_id = ds_map_find_value(async_load, "id");
if(n_id == server_socket){
    var t = ds_map_find_value(async_load, "type");
    socketlist = ds_list_create();
    if(t == network_type_connect){
        sock = ds_map_find_value(async_load, "socket");
        ds_list_add(socketlist, sock);
    }
}

if(n_id == sock) {
    var t_buffer = ds_map_find_value(async_load, "buffer"); 
    var cmd_type = buffer_read(t_buffer, buffer_string);
    show_message(cmd_type);
}
消息到达时,必须使用套接字id。
网络类型数据
永远不会被触发

此外,还必须在服务器的create事件中用负数声明
sock
变量(如noone(-4))

server_socket = network_create_server(network_socket_tcp, 5200, 5);
var n_id = ds_map_find_value(async_load, "id");
if(n_id == server_socket){
    var t = ds_map_find_value(async_load, "type");
    socketlist = ds_list_create();
    if(t == network_type_connect){
        var sock = ds_map_find_value(async_load, "socket");
        ds_list_add(socketlist, sock);
    }
    if(t == network_type_data){
        var t_buffer = ds_map_find_value(async_load, "buffer"); 
        var cmd_type = buffer_read(t_buffer, buffer_string);
        show_message(cmd_type);
    }
    //show_message("Something happened!");
}
var n_id = ds_map_find_value(async_load, "id");
if(n_id == server_socket){
    var t = ds_map_find_value(async_load, "type");
    socketlist = ds_list_create();
    if(t == network_type_connect){
        sock = ds_map_find_value(async_load, "socket");
        ds_list_add(socketlist, sock);
    }
}

if(n_id == sock) {
    var t_buffer = ds_map_find_value(async_load, "buffer"); 
    var cmd_type = buffer_read(t_buffer, buffer_string);
    show_message(cmd_type);
}