hi,
I have used both compenets to send/receive text but now I'm trying to 
use it for sending files..
so I tried just simple to open the file binary, read it and send it to 
the Server

 TCommand = record
  ID : Integer;
 end;

  TFileBuf = record
    ID : Integer;
    bufSize : Integer;
    buf: array[0..1024] of Byte;
  end;

//send the file (client)
while ...
    BlockRead(f, FileBuf.buf, SizeOf(FileBuf.buf), FileBuf.bufSize);
    FBuf.ID:=1;
    WSocket1.Send(@FileBuf, sizeof(FileBuf));
end;

before sending the file, the server gets some information about it 
(size, name,  ...) - this works fine but if I try to send a file the 
server doesn't get any new record  from the client:

//ondata aviable...
var
  buf   : array[Word] of Byte;
  fData : TMemoryStream;

  Filebuf  : ^TFileBuf;
  Command : TCommand;
  FileInfo : TFileInfo;
  OldPos   : Integer;

begin
 fData:=TMemoryStream.Create;
 GetMem(Filebuf,SizeOf(TFileBuf));
 with sender as TWSocketClient do begin
   nRead := Receive(@buf, High(Buf)- Low(buf));
   OldPos := fdata.Position;
   fData.WriteBuffer(buf, nRead);
   try
     fData.Position := OldPos;
     fdata.ReadBuffer(Command, SizeOf(Command));
     if Command.ID = 1 then begin
       fData.Position := OldPos;
       fdata.ReadBuffer(Filebuf, SizeOf(Filebuf));
       if CanWriteToFile then begin  //write data to file
         BlockWrite(f, Filebuf.buf, SizeOf(FileBuf.bufSize));
         currspeed:= currspeed + FileBuf.bufSize;
         Numwritten:=Numwritten+FileBuf.bufSize;
       end;
     end else
//... code for getting Fileinfo (works)

some strange thing I recognized was that the client was sending/reading 
data in full speed while I was debugging and executing my code step by 
step :(

has anybody an idea to solve this problem or another way to send a file 
except ftp or http (it shoud be recordbased)?

ps sorry for the huge code in my mail

thx Sela
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to