ins Netzwerk senden mit Threads
Verfasst: 28.06.2015 12:01
Mit folgender Procedure sende ich an die Clients:
Beispiel:
Nun kann es sein, dass einer der Clients eine langsame Verbindung hat. Das bremst beim Senden den ganzen Server aus.
Ich möchte dass der Server jeden einzelnen Client in einem einzelnen Thread sendet, in der Hoffnung, dass dann nicht alles ausgebremst wird.
Leider kenne ich mich mit Threads überhaupt nicht aus und weiss auch nicht, ob man das überhaupt machen kann.
Hat jemand einen Tip für mich?
Code: Alles auswählen
Procedure Sende(aClientId,aStr.s)
Protected counter,i,sentBytes,gesendet,timer,zeit,l,ok
Protected.s nname
ok=1
l=Len(astr)
l=StringByteLength(astr, #PB_Ascii) ;soll besser sein als len()
timer=Date()
If aClientId>0
Repeat
If aClientId>0
gesendet=SendNetworkString(aClientId, aStr, #PB_Ascii)
If gesendet=-1
Delay(20)
Else
sentBytes+gesendet
EndIf
zeit=Date()-timer
EndIf
Until sentBytes=L Or zeit>60 Or aclientid<1
If zeit>60
ok=0
EndIf
If ok=1
Debug "Iconstringlänge: "+Str(sentBytes)+" gesendet (Original: "+Str(l)
EndIf
ProcedureReturn ok
EndIf
EndProcedure
Code: Alles auswählen
for i=1 to 100
sende (SpielerId(i),aLongLongString)
next i
Ich möchte dass der Server jeden einzelnen Client in einem einzelnen Thread sendet, in der Hoffnung, dass dann nicht alles ausgebremst wird.
Leider kenne ich mich mit Threads überhaupt nicht aus und weiss auch nicht, ob man das überhaupt machen kann.
Hat jemand einen Tip für mich?