Strict

'SERVER

'Variablen die benötigt werden
Local serverPort:Int = 8888		 'Wie der Name schon sagt. Der Port auf den gelauscht wird
Local quitServer = False				'Variable die prüft ob Server weiter aktiv sein soll
Local openServer:tgnethost		'Variable die auf den gestarteten Serverhost zeigt



'Host erstellen der sich zu anderen verbinden(client) kann oder lauschen kann.(server)
Local listener:tgnethost = CreateGNetHost()
Print "Server wird gestartet ";Print""

'Server auf bestimmten Port lauschen lassen

If Not GNetListen(listener , serverPort)
	Print "Server konnte nicht gestartet werden:"
	Print "Port " + serverPort + " bereits belegt."
	quitServer = True
	CloseGNetHost(listener)
	Return
Else
	openServer:tgnethost = listener 'Umbennen der Variable zum Zecke des Verständnisses
EndIf 



While Not quitServer
	
	'Synchronisieren der GNet Objekte
	GNetSync(openServer)


	'Objekt-Liste die alle Gnet-Objekte enthält
	Local objectGList:TList = GNetObjects( openServer) 
	
	'Foreach Schleife die alle Elemente der Liste durchläuft
	For Local objectG:TGnetObject = EachIn objectGList
		
		'Hier wird der Status jedes einzelnen GnetObjekts abgelegt
		Local state = GNetObjectState( objectG ) 
			
		'Swicht-Case Abfrage (Die verschiedenen möglichen Gbnet-Objekt Stati)
		Select state
			Case GNET_CREATED
				Print "New object created"
			Case GNET_SYNCED
			Case GNET_MODIFIED
				Print GetGNetString(objectG,1)+" is moving"
			Case GNET_CLOSED
				Print "Connection closed to a peer"
			Case GNET_MESSAGE
		EndSelect
		
	Next



	'Delay von einer Millisekunde damit die CPU nicht zu 100% ausgelasstet wird.
	Delay(1)
Wend
