Netzwerk Libs
Beta

Tut mir leid die Beta wird sich doch wohl etwas verschieben, mir sind wichtigere dinge dazwischengekommen.. !
Wann weiß ich noch nicht werde es aber hier reinschreiben..
mfg ToeB
Wann weiß ich noch nicht werde es aber hier reinschreiben..
mfg ToeB
UDP_ChangeHost() + Bugfixes


So die Function
UDP_ChangeHost( SpielerNummer [, CommandoHandle] [, CommandoParameter] )
Ist jetzt komplett drin. Ich hab mir die Nacht um die Ohren geschlagen um etliche Fehler auszumerzen, die dabei auftreten. Man kann auch schon die Zusatz-Informationen senden, also einfach einen Command erstellen und bei der Function angeben, dann bekommt der andere Server das auch. Wer auf nummer sicher gehen will, schickt vorher mit dem Sicheren senden die Daten rüber und benutz dann UDP_ChangeHost (da es dort direkt gesendet wird und nicht sicher ).
Auch sind ein paar Bugs , die ich beim Programmieren bemerkt habe, gefixed. Denn ich hab gemerkt dass man im Commando zwar meherere Banks angeben kann, aber es wird nur eine Gesendet, das wurde verbessert.
Auch wird der Ping jetzt hochgezhählt wenn das andere Programm nicht antwortet.
Auch Suche ich leute, die gern mal ausführlich meine SimpleUDP2.0 Testen möchten. Dafür währen sowohl "Profis" als auch Blitzbasic anfänger gern gesehen, da mich intressiert ob alles gut verständlich ist etc. Das Testen würde das schreiben eines Eigenem Beispieles beihalten, also es muss nix mit grafik und so sein, um gottes willen, nur so ein einfaches "Chat" beispiel etc. Dann müsst ihr mir nur sagen, was ihr gut und was ihr schlecht fandet. Auch könntet ihr einfach eines der Fertigen Beispiele testen, und mir dann Bugs reporten. Wäre nett wenn sich einer Anbieten würde ! Ihr könnt euch schon melden, bekommt die Version aber fühstens am Feritag diser Woche (18.06), da ich noch kleine Functionen einbauen muss.
mfg ToeB
UDP_ChangeHost()


So es gibt eine neue Function die es in sich hat : UDP_ChangeHost( PlayerID )
Diese Function dient dazu, den Host mitten im Spiel zu wechseln. Das wäre z.B. super, wenn man Host ist und das Spiel beenden möchte, aber die anderen noch weiter spielen lassen will. Dann sucht man sich einfach den Spieler mit dem Niedrigsten Ping aus (oder mit dem Schönsten Namen) und wendet UDP_ChangeHost() auf ihn an. Dann wird Automatisch der Host gewechselt, und man kann beenden. Leider muss man das UDP_ChangeHost einmal in der Schleife mit UDP_Update aufrufen, also so
Code: [AUSKLAPPEN]
Repeat
UDP_Update()
If KeyHit(1) Then UDP_ChangeHost( RandomID ) : ChangedHost = 1
If UDP_Connected = 1 And ChangedHost = 1 Then Exit
Forever
UDP_End()
UDP_Update()
If KeyHit(1) Then UDP_ChangeHost( RandomID ) : ChangedHost = 1
If UDP_Connected = 1 And ChangedHost = 1 Then Exit
Forever
UDP_End()
Dann wird es klappen, so klappt es nicht :
Code: [AUSKLAPPEN]
Repeat
UDP_Update()
Until KeyHit(1)
UDP_ChangeHost( RandomID )
UDP_End()
UDP_Update()
Until KeyHit(1)
UDP_ChangeHost( RandomID )
UDP_End()
Im Moment ist die Function und alles drum herum so weit, das man wenn man EINEN Host und EINEN Client hat, dass man ständig den Host zwischen ihnen Wechseln kann (IP / Port bleiben gleich ). Eingebaut werden muss noch, dass es auch anderen Clients mitgeteilt wird und dass man zusätzliche Daten mitschicken kann (per CMD's), also dass das entweder so aussieht :
Code: [AUSKLAPPEN]
UDP_ChangeHost( PlayerID [, cmdID] [, cmdParameterList$] )
Und somit kann man dann auch banken etc. verschicken (z.B. für playerpositionen oder Leben / Geld).
mfg ToeB
Bugfixes


So da ich keine Kommentare zu meiner Techdemo bekommen habe wird die Lib nicht mehr weitergemacht und Chrise kann zusehen wie er klar kommt.
Nein Scherz

Ein paar Kommentare währen aber schon nett

Als ich bin beim Testen meiner Lib im Netzwerk auf einen Schlimmen fehler gestoßen. Und zwar, wenn man in den Chat schreibt "Hallo, das wetter ist schön", dann erkennt meine Lib das Komma als Abgrenzung und will zwei parameter senden, "Hallo" und " das wetter ist schön". Aber Das soll ja nicht

Code: [AUSKLAPPEN]
UDP_SendCmd( cmd_chat, "Das wetter, das ist schön") ;>> Geht
UDP_SendCmd( cmd_chat, Chr(34) + "Das wetter, das ist schön" + chr(34)) ;>> Geht
UDP_SendCmd( cmd_chat, "Das Wetter, das ist schön !" + "," + r + ","+ g + "," + b) ;>> Geht nicht
UDP_SendCmd( cmd_chat, Chr(34) + "Das Wetter, das ist schön !" + Chr(34) + "," + r +"," + g + ","+ b +",") ;>> Geht
UDP_SendCmd( cmd_chat, Chr(34) + "Das wetter, das ist schön" + chr(34)) ;>> Geht
UDP_SendCmd( cmd_chat, "Das Wetter, das ist schön !" + "," + r + ","+ g + "," + b) ;>> Geht nicht
UDP_SendCmd( cmd_chat, Chr(34) + "Das Wetter, das ist schön !" + Chr(34) + "," + r +"," + g + ","+ b +",") ;>> Geht
Auch habe ich die Function UDP_SendCmd nochmals geschleunigt, da ich das Stringparsing nur einmal, und nicht für jeden Spieler einzeln durchführe. Ist zwar nur minimal, aber doch schneller als vorher

mfg ToeB
SimpleUDP 2.0 - Tech Demo


Die TechDemo ist da !!
In der Techdemo ging es mir darum, möglichst viele Features der SimpleUDP2 darin einzubauen. Auch ging es mir darum, in dem Quellcode das Anwenden der Befehle zu erörtern mithilfe von Kommentaren und übersichtligem Code. Den Code werde ich aber nur zusammen mit der SimpleUDP2 veröffentlichen, deshalb gibts hier nur ne EXE.
Was ist in der TechDemo enthalten ?









Screenshot ?
Jap ! Hier


Download ?
Jap ! Hier

>> Download SimpleUDP2.0 - TechDemo << (*.rar Datei, ~512 Kb )
Edit :
So es gibt jetzt ne kleine änderung in der Version. Und zwar das die Nachrichten, die gescihert gesendet wurden, werden beim Empfänger zwischengespeichert. Diese werden aber nur 1000ms zwischengespeichert, dadurch kann es sein, wenn der ping > 500ms ist das es zwei nachrichten gibt. Das würde zwar nur in 0.001% aller Fälle vorkommen, aber ich habe jetzt die Zeit hochgesetzt auf 5000. Auch wurden oft Nachrichten 4 mal angezeigt, obwphl nur eine Nachricht kam, das wurde auf beseitigt.
Edit : Ich würde mich übrigens doch über kommentare freuen

mfg ToeB
Beispiel


Nein es gibt Noch keinen Download, falls ihr das jetzt erwartet habt




Auch habe ich beim schreiben des Beispiels noch Fehler in der SimpleUDP endeckt, und zwar das wenn der Client eine Nachricht an alle schickt, dann schickt er diese erst an der Server und der verteilt diese weiter. Das Problem war, das der Client, der die nachricht verschickt hatte, sie selbst wieder empfing, heißt also der Server hatte dem absender die Nachricht zurückgeschickt. Ist ein einfaches Problem, aber bis ich das mal gefunden habe.... Ihr kennt das sicherlich xD
mfg ToeB
Logo + SimpleUDP 2.0


So dank Chrise hab ich jetzt auch nen Logo für die SimpleUDP

Auch hat sich was an der Lib getan, ich hab nämlich folgendes eingebaut :


Bei beiden Funktionen wird automatisch erkannt, ob es sich um eine Gepunktete IP handelt, oder um eine in Integer Form, oder um eine ID. Beim Bannen krigt der Spieler beim Connecten eine Nachricht, wie lange und aus welchem Grund er gebannt worden ist (falls ein Bann für ihn vorhanden). Das ganze ließt man dann mit den Events aus. Mal ein Beispiel, ist noch nicht fertig auskommentiert, aber man kann ungefähr erkennen wie es aufgebaut ist :
Code: [AUSKLAPPEN]
Graphics 400,300,16,2
SetBuffer BackBuffer()
;SimpleUDP2 - Funktionen einbinden
Include "SimpleUDP2.bb"
;Eingabe für den Start
Print "1 - Sitzung Erstellen"
Print "2 - Sitzung Beitreten"
host_or_join = Input( "> " ) ; Eingabe
maxplayers = 10
If host_or_join = 1 Then ;Wenn man 'Sitzung Erstellen' gewählt hat
startgame = UDP_HostGame( maxplayers, UDP_NetGame, 8000 , 0) ;Einen Host erstellen, der Internetfähig ist und auf dem Port 8000 läuft
If startgame = 0 Then ;Wenn der Host nicht erstellt werden konnte
RuntimeError( "Sitzung konnte nicht erstellt werden !"+Chr(10)+Chr(10)+"Port "+UDP_ServerPort+" wird bereits auf ihrem Computer verwendet !" )
EndIf
ElseIf host_or_join = 2 ;Wenn man 'Sitzung Beitreten' gewählt hat
tmpIP$ = "192.168.0.2";Input("IP : ")
error = UDP_JoinGame( tmpIP$, 8000 ) ;Dem host der IP '127.0.0.1' (localhost) auf dem Port 8000 beitreten
If error = 0 Then ;Wenn kein Stream erstellt worden ist
RuntimeError( "Konnte keinen Stream erstellen !" )
EndIf
EndIf
Dim Xpos(UDP_MaxPlayers),YPos(UDP_MaxPlayers)
Global SendID = -1
Global timer = CreateTimer(60)
;Sende - Commands erstellen
Global cmd_Pos = UDP_AddCmd("short,short")
Repeat
FPSms = MilliSecs()
AppTitle FPSTime
;Netzwerk updaten
UDP_Update( )
;Empfangen
While UDP_RecvCmd( )
Select UDP_CmdID
Case cmd_Pos
XPos(UDP_CmdFromID) = UDP_CmdParameter[ 0 ]
YPos(UDP_CmdFromID) = UDP_CmdParameter[ 1 ]
End Select
Wend
;Events auslesen
While UDP_GetEvent( )
Select UDP_EventID
Case Event_ConnectedServer
Dim XPos(UDP_MaxPlayers),YPos(UDP_MaxPlayers)
Case Event_NewPlayer
DebugLog "New Player : "+UDP_EventData$
Case Event_PlayerLeft
DebugLog "Player Left : "+UDP_EventData$
Case Event_PlayerBanned
DebugLog "Bann"
If UDP_EventData = UDP_PlayerID Then
DebugLog "You were banned from the Server ! (Reason : "+UDP_EventMsg$+" | Time : "+(Int(UDP_EventMsg2)/1000.0)+"sek)"
Else
DebugLog "Player Banned : "+UDP_EventData$ +" (Reason : "+UDP_EventMsg$+" | Time : "+(Int(UDP_EventMsg2)/1000.0)+"sek)"
EndIf
Case Event_NoConnection
If UDP_EventData = 0 Then DebugLog "Server full !"
If UDP_EventData = 1 Then
DebugLog "Your are allready banned from the server ! (Reason : "+UDP_EventMsg$+" | Time : "+(Int(UDP_EventMsg2)/1000.0)+"sek)"
EndIf
End Select
Wend
;Senden
If UDP_Connected = 1
XPos(UDP_PlayerID) = MouseX()
YPos(UDP_PlayerID) = MouseY()
UDP_SendCmd( cmd_Pos, XPos(UDP_PlayerID)+","+YPos(UDP_PlayerID), 1, SendID ) ;POSITION SENDEN
EndIf
If UDP_Host = 0
If UDP_Connected = 0 Then Color 255,0,0 : Text 0,0,"Nicht verbunden"
If UDP_Connected = 1 Then Color 0,255,0 : Text 0,0,"Verbunden"
EndIf
;Clienten anzeigen
textrow = (1-UDP_Host)*13
mhit = MouseHit(1)
get = 0
For tmpClient.UDP_Client = Each UDP_Client
If RectsOverlap( MouseX(), MouseY(), 1, 1, 0, textrow, 400, 13 )
Color 128,128,128
If mHit = 1 Then
UDP_BannPlayer( tmpClient\ID, 15000, "Wegen der Milch" )
EndIf
Else
Color 255,255,255
EndIf
Text 0, textrow, tmpClient\ID+".: "+DottedIP( tmpClient\IP )+":"+tmpClient\Port
Text 370, textrow, tmpClient\Ping
textrow = textrow + 13
Line XPos(tmpClient\ID)-5,YPos(tmpClient\ID)-5,XPos(tmpClient\ID)+5,YPos(tmpClient\ID)+5
Line XPos(tmpClient\ID)+5,YPos(tmpClient\ID)-5,XPos(tmpClient\ID)-5,YPos(tmpClient\ID)+5
Next
WaitTimer(timer)
Flip 0
Cls
FPSTime = MilliSecs() - FPSMs
Until KeyHit(1)
;Netzwerk beenden
UDP_End( )
End
SetBuffer BackBuffer()
;SimpleUDP2 - Funktionen einbinden
Include "SimpleUDP2.bb"
;Eingabe für den Start
Print "1 - Sitzung Erstellen"
Print "2 - Sitzung Beitreten"
host_or_join = Input( "> " ) ; Eingabe
maxplayers = 10
If host_or_join = 1 Then ;Wenn man 'Sitzung Erstellen' gewählt hat
startgame = UDP_HostGame( maxplayers, UDP_NetGame, 8000 , 0) ;Einen Host erstellen, der Internetfähig ist und auf dem Port 8000 läuft
If startgame = 0 Then ;Wenn der Host nicht erstellt werden konnte
RuntimeError( "Sitzung konnte nicht erstellt werden !"+Chr(10)+Chr(10)+"Port "+UDP_ServerPort+" wird bereits auf ihrem Computer verwendet !" )
EndIf
ElseIf host_or_join = 2 ;Wenn man 'Sitzung Beitreten' gewählt hat
tmpIP$ = "192.168.0.2";Input("IP : ")
error = UDP_JoinGame( tmpIP$, 8000 ) ;Dem host der IP '127.0.0.1' (localhost) auf dem Port 8000 beitreten
If error = 0 Then ;Wenn kein Stream erstellt worden ist
RuntimeError( "Konnte keinen Stream erstellen !" )
EndIf
EndIf
Dim Xpos(UDP_MaxPlayers),YPos(UDP_MaxPlayers)
Global SendID = -1
Global timer = CreateTimer(60)
;Sende - Commands erstellen
Global cmd_Pos = UDP_AddCmd("short,short")
Repeat
FPSms = MilliSecs()
AppTitle FPSTime
;Netzwerk updaten
UDP_Update( )
;Empfangen
While UDP_RecvCmd( )
Select UDP_CmdID
Case cmd_Pos
XPos(UDP_CmdFromID) = UDP_CmdParameter[ 0 ]
YPos(UDP_CmdFromID) = UDP_CmdParameter[ 1 ]
End Select
Wend
;Events auslesen
While UDP_GetEvent( )
Select UDP_EventID
Case Event_ConnectedServer
Dim XPos(UDP_MaxPlayers),YPos(UDP_MaxPlayers)
Case Event_NewPlayer
DebugLog "New Player : "+UDP_EventData$
Case Event_PlayerLeft
DebugLog "Player Left : "+UDP_EventData$
Case Event_PlayerBanned
DebugLog "Bann"
If UDP_EventData = UDP_PlayerID Then
DebugLog "You were banned from the Server ! (Reason : "+UDP_EventMsg$+" | Time : "+(Int(UDP_EventMsg2)/1000.0)+"sek)"
Else
DebugLog "Player Banned : "+UDP_EventData$ +" (Reason : "+UDP_EventMsg$+" | Time : "+(Int(UDP_EventMsg2)/1000.0)+"sek)"
EndIf
Case Event_NoConnection
If UDP_EventData = 0 Then DebugLog "Server full !"
If UDP_EventData = 1 Then
DebugLog "Your are allready banned from the server ! (Reason : "+UDP_EventMsg$+" | Time : "+(Int(UDP_EventMsg2)/1000.0)+"sek)"
EndIf
End Select
Wend
;Senden
If UDP_Connected = 1
XPos(UDP_PlayerID) = MouseX()
YPos(UDP_PlayerID) = MouseY()
UDP_SendCmd( cmd_Pos, XPos(UDP_PlayerID)+","+YPos(UDP_PlayerID), 1, SendID ) ;POSITION SENDEN
EndIf
If UDP_Host = 0
If UDP_Connected = 0 Then Color 255,0,0 : Text 0,0,"Nicht verbunden"
If UDP_Connected = 1 Then Color 0,255,0 : Text 0,0,"Verbunden"
EndIf
;Clienten anzeigen
textrow = (1-UDP_Host)*13
mhit = MouseHit(1)
get = 0
For tmpClient.UDP_Client = Each UDP_Client
If RectsOverlap( MouseX(), MouseY(), 1, 1, 0, textrow, 400, 13 )
Color 128,128,128
If mHit = 1 Then
UDP_BannPlayer( tmpClient\ID, 15000, "Wegen der Milch" )
EndIf
Else
Color 255,255,255
EndIf
Text 0, textrow, tmpClient\ID+".: "+DottedIP( tmpClient\IP )+":"+tmpClient\Port
Text 370, textrow, tmpClient\Ping
textrow = textrow + 13
Line XPos(tmpClient\ID)-5,YPos(tmpClient\ID)-5,XPos(tmpClient\ID)+5,YPos(tmpClient\ID)+5
Line XPos(tmpClient\ID)+5,YPos(tmpClient\ID)-5,XPos(tmpClient\ID)-5,YPos(tmpClient\ID)+5
Next
WaitTimer(timer)
Flip 0
Cls
FPSTime = MilliSecs() - FPSMs
Until KeyHit(1)
;Netzwerk beenden
UDP_End( )
End
mfg ToeB
Danksagungen und Entschuldigung

Hallo!
Oh, es tut mir so Leid, dass ich es nicht rechtzeitig geschafft habe, die Beispiele für LamaNet 2.0 fertigzustellen. Ich war die letzte Woche sehr beschäftigt und auch an den Wochenenden war ich immer durch etwas verhindert, um ordentlich weiterzumachen.
Natürlich arbeite ich momentan noch an den Beispielen und werde diese diesmal auch genaustens beschildern, damit sich alle Neulinge relativ sofortig auskennen

Ich hoffe es kommen noch ein paar Ideen Zustande! Mich würde es freuen, wenn einige von euch mir schreiben würden, was sie noch wissen wollten, wie etwas bestimmtes mit LlamaNet geht oder funktioniert. Ich werde natürlich gleich diese Fragen beantworten und die Antworten ebenfalls in meine Beispiele mit einbringen!
Übrigens ist mir aufgefallen, dass in der letzten Version die ich heraufgeladen hatte der Header gefehlt hatte. Das hat mich geärgert, denn in dem Header stehen offiziell alle Mitglieder und allgemein Helfer, die mich bisher bei dem Projekt unterstützt haben. Deshalb möchte ich mich hiermit entschuldigen und auch hier die Danksagungen zeigen! Die Reihenfolge der Namen ist durch Zufall entstanden und hat keinerlei Bedeutung. Ich bin jedem gleich dankbar

In der nächsten Version die upgeloadet ist, werden diese Danksagungen natürlich wieder mit enthalten sein!
- Alpha-Tests - KriD
- Beta-Tests - KriD, mDave, ToeB, Gindas, Spinkser, Blackside, Cgamer, Matthias,Oraclefile, Skabus
- Unterstützungshilfen - Eingeproggt, Starwar, Oraclefile, KriD, ToeB, Skabus, mDave, Nicdel, BladeRunner
- BroadCast-Berechnung - Eingeproggt, BadDeath
- MD5-Hash-Berechnung - Chester
Nocheinmal Herzlichen Dank für all diejenigen!
Bis zum nächsten Worklog-Eintrag

lg Chrise
SimpleUDP 2.0


So es gibt jetzt wieder eine Neuerung. Erstmal habe ich den Code mit dem SIcherem Senden mal mit Eingeproggt übers Internet getestet, hat wunderbar genfunzt ( Danke dir nochmal ! ). Dann habe ich mich den halben tag dran gesetzt, nochmal das sichere senden zu überarbeiten, da es oft zu ID fehlern kam, wenn ich nur an eine bestimmte person senden wollte, dann hat entweder alle oder gar keiner die nachricht bekommen. Als ich das gelöst habe, habe ich direkt mal was neues eingebaut.
Senden von DatenBanken
Stellt euch mal vor es muss in Eurem spiel viele Daten am anfang der Runde übertragen werden, also Startpositionen der Spieler, Entity Positionen, türen ob auf oder zu und was weiß ich nicht alles. Da ist es natürlich viel zu aufwendig, jede Daten in die Parameter zu quetschen. Außerdem ist das Blöd wenn man z.B. nicht weiß wie viele Entity psotionen übertragen werden müssen. Dafür kann man dann die ganzen Daten in eine Bank speichern und diese Wird dann unabhängig von der Größe übertragen. Das ganze sieht dann so aus :
Code: [AUSKLAPPEN]
cmd_BankTest = UDP_AddCmd("int,int,bank")
Und dann
Code: [AUSKLAPPEN]
UDP_SendCmd(cmd_BankTest,x+","+y+","+EntityBank)
Und
Code: [AUSKLAPPEN]
If UDP_RecvCmd() = 1 then
x = UDP_CmdParameter[0]
y = UDP_CmdParameter[1]
EntityBank = UDP_CmdParameter[2]
endif
x = UDP_CmdParameter[0]
y = UDP_CmdParameter[1]
EntityBank = UDP_CmdParameter[2]
endif
Hier als beispiel, die ersten beiden sind Positionsangaben für den Spieler, die Bank ist hier die Positionen der Entitys. Man kann natürlich auch mehr als eine bank gleichzeitig versenden

Auch ist es hierfür praktisch das man es "gesichert" versenden kann. Dadurch kommt die Bank und die Daten auf jeden fall an und man kann schön spielen

Das schöne dabei ist, die Bank werden von der SimpleUDP selbständig erstellt und nach dem Abruf wieder gelöscht. Dadurch wird der Speicherplatz nicht zu sehr belastet

mfg ToeB
SimpleUDP 2.0


So, ich habe heute den ganzen Tag damit verbracht, Sicheres Senden einzubauen. Die Lib enthält nun folgende Befehle (+Parameter)








Ich glaub die Parameter bzw. Befehele sollten selbsterklärend sein, was sie bedeuten


Sicheres Senden
Wie Funktioniert das Prinzip "Sicheres Senden" ?
Das sichere Senden mit UDP baut ähnlich wie bei TCP (welches ja eine Verlust freie Verbindung garantiert) auf dem System auf, das Jede Nachricht überprüft wird, ob sie angekommen ist. Da UDP (Also das Blitz - UDP) ja bei einer Fehlerhaften Information in einer Nachricht diese komplett "wegwirft" muss man nicht den Inhalt auf vollständigkeit überpürfen, sondern nur, ob die Nachricht angekommen ist oder nicht. Angekommen = Vollständig angekommen. Somit gebe ich Jede Nachricht eine ID. Diese wird mit der Nachricht gesendet. Krigt man eine solche nachricht, so wird geguckt ob schon eine Gespeicherte nachricht mit dieser ID exestiert (durch Ping fehler etc.). Dann werden die Daten ausgelesen und eine Antwort mit dieser ID zurückgeschickt. Der sender löscht nun diese Nachricht und schickt dem empfänger nochmal eine Nachricht, das er die Nachricht "veröffentlichen" darf, also das das Programm sie Mitgeteilt bekommt. Falls diese Nachricht nicht ankommen sollte, wird die nachricht sonst automatisch nach 1000ms angezeigt (kann man ändern ). Auch schickt der Empfänger, bekommt er keine Antwort, die Nachricht nochmal los (nach 64ms -> auch änderbar). Wurde die nachricht 3 mal gesendet, und immer noch keine Antwort vom Empfänger wird zum Schonen der ressaucen diese NAchricht verworfen, aber spätestens beim dritten mal sollte es zu 99.9999% ankommen.
Edit :
So dank DC's Tipp wurde jetzt das Sichere Senden beschleunigt. Dadurch dass jetzt keine Antowort mehr vom Sender kommen muss, ist jetzt alles Etwas schneller (auch wenn man es kaum merkt, aber ich denke bei riesigen Datenmengen merkt mans schon ). Auch ist die Zeit für die Nachricht zum wiederholten senden gestiegen, standartweise auf 512, sonst wenn ein Ping vorhanden ist dann Ping*2. Das heißt der Empfänger hat auf jeden fall genug zeit zu antworten, auch bei einem Ping über 64 ms.
mfg ToeB
Gehe zu Seite Zurück 1, 2, 3, 4, 5, 6 Weiter