Einzelnen Beitrag anzeigen

Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Übertragungsprotokoll für TSocket ???

  Alt 5. Mär 2010, 14:15
sooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooo

problem erkannt, allerdings noch keine lösung gefunden es zu beheben:

ich habs jetzt hinbekommen, es lag am sender:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var st:TFileStream;
    str:string;
    buffer:array[1..8192] of Byte;
    i:integer;
begin

st:=TFileStream.Create('C:\Dokumente und Einstellungen\Admin\Eigene Dateien\data\backer\server\txt.txt',fmOpenRead);
st.Position:=0;
i:=8192;

//FillChar(str,8192,#0);
//str:=#00#01#00#01#00#04+IntToStr(st.Size)+#13#10+'C:\'+#13#10+'txt.txt'+#13#10;
//Send(FConnectSocket[0],str[1],Length(str),0);
setLength(str,i);
while st.Position<st.Size do begin
//FillChar(buffer,1024,#0);
if st.Size-st.Position<8192 then begin ///----> wichtig
 i:=st.Size-st.Position;
 setLength(str,i);
 end;
st.Read(str[1],i);
Send(FConnectSocket[0],str[1],Length(str),0);
end;
  st.Free;
end;

jetz empfängt er beim ersten senden die richtig anzahl von daten.
wenn ich allerdings ein 2. mal das gleiche sende sind es etwa 8KB daten zu viel, als wenn noch etwas im chache vom server steht.
wie kann ich die restlichen daten löschen ?


Edit: irgendwie hauts immer noch nicht hin, jetzt fehlen genau 8192 byte



@Astat danke für den eitnrag, werds mir ma anschaun


Edit2: ich hab jetzt gemerkt, wenn ich debugge und sende kommt alles an, lasse ich das programm einfach durchlaufen fehlen immer 8192byte
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat