[ANET] Eine frage zur Verbindung.

Posted By: DrBong

[ANET] Eine frage zur Verbindung. - 01/09/12 07:22

Hallo,
hatte schon länger nichts mehr mit 3DGS gemacht und sind auch meine erste versuche mit ANET, deswegen wollte ich ein paar fragen dazu stellen..

also..
Wie überprüfe ich am besten ob der Client sich zu einem Server verbunden hat?
ich habe es mit folgendem Code versucht ohne einen Server zu starten und mit..
Php Code:

function start_Client()
{
	enet_set_gameversion("0.1");
	enet_init_client("127.0.0.1", 4332, "");
	
	if(enet_get_connection() == NO_CONNECTION)
	{
		printf("Verbindung zum Server fehlgeschlagen!");
	}
	
	else
	{
		printf("Verbindung zum Server erfolgreich!");
	}
	
}

function main()
{
	wait(1);
	enet_init();   //ENet wird initialisiert
	anet_set_warning(1); //Warnungen werden angezeigt
	enet_use_handles(0);
	start_Client();
	
	enet_deinit(); //ENet wird wieder deinitialisiert 
}
 




Jedoch wird IMMER "Verbindung zum Server erfolgreich!" ausgegeben.

Dasselbe wird auch hier IMMER ausgegeben:
Php Code:

function start_Client()
{
	enet_set_gameversion("0.1");
	
	if(enet_init_client("127.0.0.1", 4332, "") == ANET_ERROR)
	{
		printf("Verbindung zum Server fehlgeschlagen!");
	}
	
	else
	{
		printf("Verbindung zum Server erfolgreich!");
	}
	
}
 




Mit dem nehsten Code wird immer angezeigt das die Verbindung fehlgeschlagen ist, auch wenn der server gestartet ist:
Php Code:

function start_Client()
{
	enet_set_gameversion("0.1");
	enet_init_client("127.0.0.1", 4332, "");
	
	if(enet_get_clientid() == ANET_ERROR)
	{
		printf("Verbindung zum Server fehlgeschlagen!");
	}
	
	else
	{
		printf("Verbindung zum Server erfolgreich!");
	}
	
}
 




Bei allen drei möglichkeiten die ich ausprobiert habe, scheint was falsch zu laufen..
Posted By: Dark_samurai

Re: [ANET] Eine frage zur Verbindung. - 01/09/12 08:21

Der letzte Versuch ist der richtigere. Allerdings muss in einer Warteschleife auf die Verbindung gewartet werden:
Code:
while(enet_get_clientid() == ANET_ERROR) wait(1);


Posted By: DrBong

Re: [ANET] Eine frage zur Verbindung. - 01/09/12 08:42

Danke!

der zweite fehler war wohl
Code:
enet_deinit();



Direkt nach dem Server/Client start^^

Jetzt funktionierts.
Posted By: Dark_samurai

Re: [ANET] Eine frage zur Verbindung. - 01/09/12 10:28

Ergänzend ist vl. noch zu erwähnen, dass du auch das EVENT_CONNECTED verwenden kannst. Dieses wird aufgerufen sobald die Verbindung hergestellt wurde.

enet_get_connection() gibt nur zurück ob ein client oder ein server oder beides gestartet wurde. Sagt aber nichts über die Verbindung aus.
© 2023 lite-C Forums