Server <-> Client
Verfasst: 07.06.2006 12:26
Hallo an alle. 
Ich habe mir eine kleine Procedure geschrieben womit der Client Daten vom Server empfangen soll.
Füge ich nun in die Hauptschleife recieve_data() ein bleibt das Programm hängen und zeigt nur einen schwarzen Screen anstatt die Welt.
Der Server hat eine Procedure die Daten an die Clienten schickt.
Im Moment nur ein kleiner Test-String.
Die Procedure Send() wird aufgerufen wenn EventClient() Daten empfängt.
Meine Frage nun.
Warum läuft der Client nicht mehr ordnungsgemäß wenn ich recieve_data() in der Hautschleife aufrufe?
mfg
Cofter

Ich habe mir eine kleine Procedure geschrieben womit der Client Daten vom Server empfangen soll.
Code: Alles auswählen
Procedure recieve_data()
*Buffer = AllocateMemory(5000)
ReceiveNetworkData(connectionID, *Buffer, 5000)
rData.s = PeekS(*Buffer)
StartDrawing(ScreenOutput())
FrontColor(RGB(0, 0, 0))
DrawingMode(1)
DrawText (0,140,"ServerData: " +rData)
StopDrawing()
FreeMemory(*Buffer)
EndProcedure
Der Server hat eine Procedure die Daten an die Clienten schickt.
Code: Alles auswählen
Procedure Send()
SendNetworkString(EventClient(), "Lala...server text")
EndProcedure
Die Procedure Send() wird aufgerufen wenn EventClient() Daten empfängt.
Code: Alles auswählen
If SEvent
ClientID = EventClient()
Select SEvent
Case 1
AddGadgetItem(#ConsoleEditorGadged,a,"Neuer Client Connectet! " +Str(ClientID) +Chr(10)+ Chr(13))
AddGadgetItem(#ListPlayer,0,Str(ClientID))
Case 2
ReceiveNetworkData(ClientID, *Buffer, 5000)
neuText.s = PeekS(*Buffer)
Send()
Case 3
SetGadgetText(#ConsoleStringGadged,"Client " +Str(ClientID)+ " versucht Datei zu schicken!"+ Chr(10))
Case 4
;SetGadgetText(#ConsoleStringGadged,"Client " +Str(ClientID)+ " verlässt den Server"+ Chr(10))
AddGadgetItem(#ConsoleEditorGadged,a,"Client " +Str(ClientID)+ " verlässt den Server"+ Chr(10))
RemoveGadgetItem(#ListPLayer, 0)
EndSelect
EndIf
Warum läuft der Client nicht mehr ordnungsgemäß wenn ich recieve_data() in der Hautschleife aufrufe?
mfg
Cofter