Entwickler-Ecke

Internet / Netzwerk - Datei verschicken - Frage zu FAQ


Albanac - So 13.10.02 19:04
Titel: Datei verschicken - Frage zu FAQ
ich hab das Beispiel aus der FAQ übernommen um ne Datei zu verschicken.

Wenn ich das untere Beispiel benutze gibt es das Problem, das die AlreadyReceived -1 ist und die Datei nicht öffnbar ist.
Da es vielleicht etwas unübsichtlich erscheint hier ne beschreibung was passiert:

client sendet Handshake
server bereitet sich auf empfang vor
client sendet Dateiname
server schreibt den in nen label
client sendet size
server schreibt es in nen label
client sendet file...


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
procedure TForm1.ServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
pBuffer: pointer;
Buffer: array[0..4096] of Byte; // die Größe des Puffers ist beliebig, müsste nur (s.u.)
SizeOfBuffer: integer;

input : string;
begin
input := Socket.ReceiveText;

If (Server.Tag = 1) then
  begin
  pBuffer := @Buffer;
  SizeOfBuffer := Socket.ReceiveBuf(pBuffer^, 4096); //hier angeglichen werden
  FileStream.Write(pBuffer^, SizeOfBuffer);
  Inc(AlreadyReceived, SizeOfBuffer);
  lbl_sent.Caption := IntToStr(AlreadyReceived) + ' bytes empfangen';
  Socket.SendText(IntToStr(AlreadyReceived));
 end;

If (Server.Tag = 3) then
begin
lbl_remsize.Caption := input;
Server.Tag := 1;
end;

If (Server.Tag) = 2 then
begin
lbl_remname.Caption := input;
Server.Tag := 3;
FileStream := TFileStream.Create('C:\save.txt', fmCreate or fmOpenWrite);
end;

If (Server.Tag = 0) and (input = 'handshake') then
begin
Server.Tag := 2;
end;


O'rallY - So 13.10.02 19:13

Wann genau tritt welcher Fehler auf?


Albanac - So 13.10.02 19:19

Zitat:
Wenn ich das untere Beispiel benutze gibt es das Problem, das die AlreadyReceived -1 ist und die Datei nicht öffnbar ist (größe: 0k).

Der Code den ich gemacht habe geht einwandfrei :D ...
Eine Fehlermeldung wird nicht produziert


O'rallY - So 13.10.02 19:34

So lösen sich Probleme von selbst ... :wink:


Albanac - So 13.10.02 19:38

das problem ist immernoch das gleiche....

es wird keine fehlermeldung produziert aber funktionieren tuts nicht...

97556217 ist meine ICQ nr dann kann ich dirs auch schicken oder so (den quelltrext)