Witam. Zabrałem się za naukę obsługi sieci w GM:Studio i na podstawie tutoriala napisałem sobie najprostszy kodzik który coś ma tworzyć oPlayer dla danego clienta.
Server:
GML
// Create
_MaxClients = 32;
_PortTCP = 6510;
_CreateX = 100;
_CreateY = 100;
Clients = ds_map_create();
Sockets = ds_list_create();
Server = network_create_server( network_socket_tcp, _PortTCP, _MaxClients );
if( Server < 0 ) {
show_message( "cant create server" );
ds_map_destroy(Clients);
ds_list_destroy(Sockets);
game_end();
}
// Networking
var EventID = ds_map_find_value( async_load, "id" );
var Type = ds_map_find_value(async_load, "type");
if( EventID == Server ) { // Event socketu Server
var Sock = ds_map_find_value(async_load, "socket");
var IP = ds_map_find_value(async_load, "ip");
if( Type == network_type_connect ) { // Connection
ds_list_add( Sockets, Sock );// Lista socketow
var ObjPlayer = instance_create( _CreateX, _CreateY, oPlayer );// Obiekt socketu
ds_map_add( Clients, Sock, oPlayer );// Dodawanie do listy clientow
}
else { // Disconnect
var inst = ds_map_find_value( Clients, Sock );// Wyszukanie elementu clienta w tablicy
ds_map_delete( Clients, Sock );// Kasowanie go
with( inst ) { instance_destroy(); }// Usuniecie obiektu
var index = ds_list_find_index( Sockets, Sock );
ds_list_delete( Sockets, index );
}
}
Client:
GML
Server = network_create_socket( network_socket_tcp );
err = network_connect( Server, "127.0.0.1", 6510 );
if( err != 0 ) {
show_message( "cant join to the server" );
game_end();
}
Włączam server potem client i od razu info, że nie można połączyć się z serverem. Server również nie otrzymuje żadnych info o próbie połączenia. W czym tkwi problem?