CatchXML bei mehreren XML-Blöcken anwenden
Verfasst: 26.07.2015 14:29
Ich hab gerade eine Denkblockade, vielleicht hat jemand spontan eine Idee, wie ich das effizient lösen kann (kein Code, Denkanstoß reicht):
Ich schicke XML-Blöcke über ein Netzwerk (TCP):
Ein Block sieht dann so aus: <text>...content...</text>
Und empfange diese mit:
Funktioniert soweit. Schicke ich allerdings mehrere Blöcke kurz hintereinander, kann es vorkommen, daß die sich im Empfangsbuffer sammeln. Das sieht dann so aus: <text1>...content...</text1><text2>...content...</text2><text3>...content...</text3>
CatchXML liefert mir immer nur den ersten XML-Block im Buffer. Allerdings auch keine Info, wie lang der "gecatchte" Block ist, so daß ich nicht weiß, wo der nächste Block beginnen würde.
Wie komme ich an die nächsten Blöcke heran, ohne den Buffer "von Hand" parsen zu müssen?
Die Blöcke sind jeweils etwa 100 bis 1000 Bytes lang.
Ich schicke XML-Blöcke über ein Netzwerk (TCP):
Code: Alles auswählen
ExportXML(xsend, *xmlbuff, xlen, #PB_XML_NoDeclaration)
SendNetworkData(clID, *xmlbuff, xlen)
Und empfange diese mit:
Code: Alles auswählen
tlen = ReceiveNetworkData(wdsvID, *lanbuff, 65535)
xdat = CatchXML(#PB_Any, *lanbuff, tlen)
CatchXML liefert mir immer nur den ersten XML-Block im Buffer. Allerdings auch keine Info, wie lang der "gecatchte" Block ist, so daß ich nicht weiß, wo der nächste Block beginnen würde.
Wie komme ich an die nächsten Blöcke heran, ohne den Buffer "von Hand" parsen zu müssen?
Die Blöcke sind jeweils etwa 100 bis 1000 Bytes lang.