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