Re: Gleicher Code, nur UDP
Verfasst: 17.03.2016 00:01
Sry für den doppel Post, aber ich möchte es einfach noch mal hervorheben:
TCP:
Laut Hilfe, darf die Länge (beim Senden und Empfangen) maximal 65536 Byte betragen.
Scheinbar ist es aber möglich durchaus größere Längen bei SendNetworkData() anzugeben, wobei ReceiveNetworkData trotzdem nur Stückweise die Daten empfängt. Hier nutzt PureBasic vielleicht die Tatsache, dass unter TCP die Reihenfolge der Pakete erhalten bleibt, große Datenmengen also Übertragen werden können, PureBasic jedoch selbst stückelt.
UDP:
Laut Hilfe, darf die Länge (beim Senden und Empfangen) maximal 2048 Byte betragen.
Hier ist es definitiv nicht möglich mehr als 2048 Byte zu senden.
Zwar gibt SendNetworkData() bei 2049 Byte noch 2049 zurück, aber empfangen werden diese nicht. Erst ab 65508 Byte gibt es tatsächlich eine -1 zurück. Vielleicht sollte PB hier die echte Gränze besser kontrollieren.
Da die Reihenfolge unter UDP nicht gewährleistet ist, kann PB hier nicht selbst den Speicher stückchenweise übertragen, da der User selbst Sachen hinzufügen muss, die die Reihenfolge untersuchen.
TCP:
Laut Hilfe, darf die Länge (beim Senden und Empfangen) maximal 65536 Byte betragen.
Scheinbar ist es aber möglich durchaus größere Längen bei SendNetworkData() anzugeben, wobei ReceiveNetworkData trotzdem nur Stückweise die Daten empfängt. Hier nutzt PureBasic vielleicht die Tatsache, dass unter TCP die Reihenfolge der Pakete erhalten bleibt, große Datenmengen also Übertragen werden können, PureBasic jedoch selbst stückelt.
UDP:
Laut Hilfe, darf die Länge (beim Senden und Empfangen) maximal 2048 Byte betragen.
Hier ist es definitiv nicht möglich mehr als 2048 Byte zu senden.
Zwar gibt SendNetworkData() bei 2049 Byte noch 2049 zurück, aber empfangen werden diese nicht. Erst ab 65508 Byte gibt es tatsächlich eine -1 zurück. Vielleicht sollte PB hier die echte Gränze besser kontrollieren.
Da die Reihenfolge unter UDP nicht gewährleistet ist, kann PB hier nicht selbst den Speicher stückchenweise übertragen, da der User selbst Sachen hinzufügen muss, die die Reihenfolge untersuchen.