Also laut den Rückgabewerten kommt das paket vollständig an... nur wenn ich jetzt wissen will was für ein string da gekommen ist zeigt er halt nichts an
'*crude' und 'crude' sind verschiedene Variablen. Ein 'EnableExplicit' am Anfang deines Codes wird Wunder bewirken.
Als Hinweis: '*crude' ist bereits ein Pointer. Da braucht es kein @ mehr.
Abgesehen davon, sind die 'Delay()'s auch falsch platziert. Die sollten, wenn überhaupt, nur aufgerufen werden, wenn das NetworkEvent Null war. Ansonsten wird es in jedem Schleifendurchlauf ausgeführt und das ist schlecht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bei UDP werden die Pakete in kleine Häppchen verpackt (je nach MTU 1500 Bytes - 20 Bytes Header) und auf die Reise geschickt.
Es ist weder garantiert, dass diese Pakete ankommen, noch dass sie in der korrekten Reihenfolge bei deinem Server aufschlagen.
Bei Audio- oder Videostreams ist das nicht so schlimm, wenn das nicht 100% korrekt ankommt, wenn Du aber ein Bild verschickst, und das wieder anzeigen möchtest, muss zumindest der Bildheader und auch die Dateigröße korrekt sein, der eigentliche Bildinhalt darf ruhig verstrubbelt sein.
Das kannst Du aber ohne dass Du Dir eine Paketüberprüfung bastelst kaum bewerkstelligen.
Vermutlich wäre es für Dein Vorhaben besser auf TCP/IP umzuschwenken.
Mal davon abgesehen, erzeugst Du mit Deinen Prozeduren kleine Memory-Leaks.
Und für 4 Bytes reserviert man normalerweise keinen Speicher, sondern nimmt eine simple Variable.
ja in einem durchlauf schickt er ja nur ein bild. ich will mir aber einen stream bauen wo halt permanent bilder geschickt werden sodass ein video bei raus kommt
Moxl hat geschrieben:ja in einem durchlauf schickt er ja nur ein bild. ich will mir aber einen stream bauen wo halt permanent bilder geschickt werden sodass ein video bei raus kommt
wie sieht denn so eine paketüberprüfung aus?
Ein Videostream ist keine Folge von einzelnen Bilddateien.
Da wird erst der Header übertragen, der korrekt ankommen muss und danach die Frames, welche fehlerhaft ankommen dürfen. Die Frames sind auch nicht unbedingt komplett sondern können auch als Differenzinformation zum vorhergegangenen Frame übertragen werden. Simpel ist das ganze jedenfalls nicht und schon garnicht mit UDP. Probier dich erstmal an TCP und dann kannst probieren es auf UDP umzubauen.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!