BNetEx - Brauche Hilfe...
Übersicht

![]() |
juse4proBetreff: BNetEx - Brauche Hilfe... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, ich habe folgendes Problem:
BlitzMax: [AUSKLAPPEN] Import Vertex.BNetEx in der Zeile: BlitzMax: [AUSKLAPPEN] MemCopy(tmp, stream.SendBuffer, stream.SendSize)
gibt's nen unhandled Expeption, warum? Der Code soll, ohne das paket 2x zu schreiben, den inhalt des Ausgangs-Puffers zwischenspeichern, um ihn gegebenenfalls nochmal in den Stream zu schreiben (erster Schritt Richtung abgesicherte UDP Verbindung ![]() Bräuchte Hilfe ... gruß: juse |
||
Portfolio |LinkedIn |XING |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich bin mir jetzt gerade nicht sicher, ob du mit "CopyBytes" (in BRL.Stream) das Gleiche erzielen kannst, ich denke aber schon. So kannst du auch später dann mit "CopyStream" ohne Probleme die Inhalte wieder zurückschreiben. Auf diese Weise hast du auch den GC zu deiner Unterstützung, den du - meine ich - mit MemCopy nicht hast. | ||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
Check ich jetzt nicht ganz ... laut Doc gibts den Befehl CopyBytes garnicht
EDIT: Ohh doch... hab unter Methoden geguckt.. sorry ^^ EDIT2: Mit CopyBytes muss ich einen Source- und einen Zielstream angeben ... Also müsste ich pro zwischengespeichertes Paket einen neuen Stream anlegen, das ist nicht grade die Lösung ![]() |
||
Portfolio |LinkedIn |XING |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab' mir gerade BNetEx mal runtergeladen, um zu schauen, was es da gibt. Meine Idee (ich garantiere für nichts):BlitzMax: [AUSKLAPPEN] SuperStrict Für fSent musst du dir halt eine total knorke Überprüfung ausdenken, ob das Paket jetzt wirklich angekommen ist. Ich bin mir jetzt nicht sicher, ob das so funktioniert, aber man kann ja weiterprobieren. ![]() |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Falls es noch nicht geklärt ist:
BlitzMax: [AUSKLAPPEN] Local tmp:Byte Ptr Das funktioniert nicht, weil tmp nicht initialisiert wurde und daher im virtuellen Speicher auf 0 zeigt. Da der Speicherbereich mit großer Wahrscheinlichkeit nicht von deinem Programm beschrieben werden darf, gibt es einen Error. Wenn du es auf die Weise machen möchtest, musst du vorher tmp mit MemAlloc initialisieren und nach dem Gebrauch (wenn du es gar nicht mehr brauchst) mit MemFree freigeben. Falls du es lokal in einer Funktion initialisierst musst du es in der Funktion vor jedem Return mit MemFree freigeben. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Halbleiter: Coole Idee, aber hier trirr das Problem auf, wie speicherer ich jetzt 2 Pkcete zwischen? ![]() @Thunder: Jo, cool, ich werde man versuchen es so umzusetzten |
||
Portfolio |LinkedIn |XING |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Noch einen Stream erstellen, in den du den Inhalt des zweiten Paketes speicherst? Ich weiß nicht, wie speicheraufwendig das alles ist, aber es sollte nicht zu schlimm sein. ![]() |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei einem Online-Server mit mehreren hundert Playern wird es doch ziemlich confus ![]() |
||
Portfolio |LinkedIn |XING |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem hast du - denke ich - mit der MemCopy-Variante auch, oder? ![]() |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nö, hier brauch ich bloß nen Type anlegen, und die mit einer Liste auf diese Weise speichern... (ich weis, es geht auch so mit den Stream, aber ich finde es ist eine unsaubere Lösung... Ausserdem nehmen Stream mehr Speicher, als reine Datenblöcke ![]() |
||
Portfolio |LinkedIn |XING |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group