AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Dateiaustausch zwischen clientsocket und serversocket..^^
Thema durchsuchen
Ansicht
Themen-Optionen

Dateiaustausch zwischen clientsocket und serversocket..^^

Ein Thema von cRayZo · begonnen am 6. Okt 2007 · letzter Beitrag vom 12. Okt 2007
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: Dateiaustausch zwischen clientsocket und serversocket..^

  Alt 11. Okt 2007, 19:19
Wenn du mehr als nur ein Bild übertragen willst, dann musst du ein entsprechendes Protokoll dir ausdenken um Daten und Anweisungen ordentlich auseinander halten zu können. Ich hatte dir vorhin schon geschrieben, dass ReceiveText den komplett empfangenen Buffer ausliest und als String zurück gibt. Was machst du? Du rufst ReceiveText einfach auf im OnClientRead - ohne ab zu prüfen ob du vllt. gerade bei der Bildübertragung bist - nein - einfach die Bytes rausholen und gut ist. Warum auch - ist doch egal, das andere klappt schon.

if Copy(ReceiveText,1,3)='incthen begin Vor allem das witzige ist ja: wenn du da vllt. einen ein kilometerlangen String im Socket hast, dann bekommst du ihn mit diesem einen Aufruf zurück geliefert und dann ist der Socket leer. Ist schön das du davon nur 3 Zeichen abschneidest und den Rest wegwirfst. Wozu sendest du überhaupt soviel?

Wie schon zuvor in diesem Thread hier erklärt: Der Socket hat kein Protokoll und überträgt rein die Daten. Wenn du auf der einen Seite einen String mit einem SendText() reinwirfst, dann kommt er auf der anderen Seite (im schlechtesten Falle) in einzelnen Buchstaben an. D.h. dein OnClientRead wird so oft aufgerufen mit ReceiveLength = 1 wie der String Buchstaben hat, und du bekommst auch immer nur ein Buchstabe. Von daher musst du dich organisieren. Du musst wissen, was da nun im Socket drinne steht und wie du das zu handeln hast. Der Socket macht nichts weiter als die Daten zu übertragen, dabei ist es ihm völlig egal, was er dort überträgt und wie du denkst, das es zusammen gehört. Alles was du auf der einen Seite reinstopfst, kommt auch auf der anderen Seite irgendwann wieder aus. Die Reihenfolge wird stimmen, aber es kann ganz frei geteilt rauskommen. Das zusammenpuzzlen und entsprechen interpretieren ist deine Sache.

Du kannst grundsätzlich nicht einfach Text und Binärdaten mischen, so lange du nicht genau weisst: Nun ist das jeweilige im Socket enthalten bzw. es ist so lang.

Zitat von Muetze1:
/EDIT: Ich habe dir ein Auto verkauft - wenn du daraus ein LKW baust, dann verlierst du die Garantie. Somit musst du selber wissen was du machst. Reparieren kann ich's gerne, aber das kostet wie in jeder anderen Werkstatt Geld...
Wie geschrieben. Du hast es zum LKW umgebaut - und warst nicht vorsichtig genug bzw. hast dich nicht kundig gemacht und bist somit ohne richtiges Wissen über den Code zu Werke gegangen. Nun such eine Werkstatt oder mach es nochmal - dann aber mit viel mehr Vorsicht und Wissen darum!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz