Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#47

Re: Dateiaustausch zwischen clientsocket und serversocket..^

  Alt 11. Okt 2007, 21:39
Entschuldige wenn es etwas harsch war, aber ich hatte beim Beitrag zuvor schon darauf hingewiesen und vermutet, dass ReceiveText aufgerufen wird. Und dann postest du einen Code der dies bei jedem Aufruf von OnClientRead aufruft. Es ist fast schon ein Wunder, dass er überhaupt soweit kommt irgendwas in den Stream zu schreiben...

Zitat von cRayZo:
Zitat von Muetze1:
Ist schön das du davon nur 3 Zeichen abschneidest und den Rest wegwirfst. Wozu sendest du überhaupt soviel?
Ich sende nicht mehr, als ich brauche! die ersten drei ziffern werden nur zum überprüfen benutzt.
Und nochmal: ReceiveText liefert dir komplett alles, was der Socket bis zu dem Aufruf von ReceiveText empfangen hat. Wenn du auf der einen Seite "inc:" und dahinter einen Text "blubb" schickst, dann ist die Chance mehr als gross, dass der Client beim OnClientRead z.B. schon "inc:blubb" empfangen hat. Und damit erhälst du bei dem ReceiveText-Aufruf schon "inc:blubb". Dies gibst du Copy und bekommst nur "inc" - das ":blubb" schmeisst du weg, da du das nirgendwo speicherst. Genauso gut kann es sein, dass er bisher nur "in" empfangen hat. Dein ReceiveText entfernt nunmal alles was er jemals zurück gegeben hat aus dem Socket. D.h. beim nächsten Aufruf bekommste dann z.B. vielleicht "c:bl" und beim nächsten Mal "ubb".

Ich hoffe es war nun verständlich was du mit dem ReceiveText anrichtest.

Und nun stell dir mal vor, dass der Server gar keinen Text geschickt hatte sondern noch die Bilddaten übertragt. Dein ReceiveText Aufruf holt alle bisher empfangenen Daten aus dem Puffer des Sockets. Damit bekommst du einen String mit binären Bilddaten - die dann ReceiveBuf() nicht mehr bekommt, da du schon alles rausgeholt hast. Somit: du zerstückelst das Bild.

Deshalb: du musst immer wissen was wann über den Socket übertragen wird und wozu es gehört. Dazu ist es nötig die Übertragungen und Daten zu ordnen und dafür brauchst du ein Protokoll.
  Mit Zitat antworten Zitat