Página 1 de 1

Não recebe os dados do buffer

Enviado: Sáb Set 30, 2017 6:10 pm
por Riccardoric
Eae galera, 
Estou aprendendo a mexer com networking, já vi vários tutoriais... Já sei a mecânica toda, como funciona tudo basicamente. Só que quase nenhum tutorial ensina como mexer de forma dinâmica, o que é bastante difícil. Mas chega de bla bla bla.

È o seguinte, to tentando fazer um chat online. Por enquanto to fazendo algo bem simples. Meu problema é que quando eu mando o buffer pro meu servidor, ele não recebe ou não sei o que acontece, mas não aparece nada no draw.
Lá vai o script do client para mandar pro server:

Código: Selecionar todos

//ISSO TA NO STEP DO OBJETO CLIENT
txt = keyboard_string;
if(keyboard_check_released(vk_enter)) {
    txt = message_to_send;
    keyboard_string = "";
    buffer_seek(client_buff,buffer_seek_start,0);
    buffer_write(client_buff,buffer_string,txt);
    buffer_write(client_buff,buffer_string,name);
    network_send_packet(client_sock,client_buff,buffer_tell(client_buff));
}
Certo, agora vai o script para receber os dados

Código: Selecionar todos

//ISSO TA NO ASYNC DO SERVIDOR
switch(type) {
    case network_type_connect:
        ds_list_add(sockets,socket);
    break;
    case network_type_disconnect:
        var index = ds_list_find_index(sockets,socket);
        ds_list_delete(sockets,index);
    break;
    case network_type_data:
     //data
     var index = ds_list_find_index(sockets,socket);
     var buff = ds_map_find_value(async_load,"buffer");
     txt_line[index] = buffer_read(buff,buffer_string);
     txt_name = buffer_read(buff,buffer_string);
    break;
}
E agora, o script do draw do servidor

Código: Selecionar todos

for(i=0;i<= ds_list_size(sockets); i++){ 
    draw_text(x,y+16+i*16,string(txt_name) + ": "+string(txt_line[i]));
}
O problema é que praticamente quando aperto enter pra enviar a mensagem, nao acontece nada... Nem o nome do player aparece. Só fica os ":" ... 

Agradeço desde já :)