Показать сообщение отдельно
  #1  
Старый 19.10.2010, 20:47
fuzz fuzz вне форума
Прохожий
 
Регистрация: 07.09.2010
Сообщения: 7
Репутация: 10
Восклицание Передача файлов через TcpServer/TcpClient

Всем привет!
Пытаюсь передать файл с клиента на сервер:

Сервер:
Код:
var	
  stream: TMemoryStream;
  msg: string;
  sz: integer;
begin
  if ClientSocket.Connect then
  begin
    msg := ClientSocket.Receiveln;
    stream := TMemoryStream.Create;
    sz := StrToInt(msg);
    stream.SetSize(sz);
    ClientSocket.Sendln('ok');
    
    ClientSocket.ReceiveBuf(stream, sz);
    stream.SaveToFile(t[1]);
    stream.Free;
    t.Free;
    ClientSocket.Disconnect;
  end;
end;

Клиент:
Код:
var
  stream: TMemoryStream;
  msg: string;
begin  
  if TcpClient1.Connect then
  begin    
    stream := TMemoryStream.Create;
    stream.LoadFromFile(source_file);
    TcpClient1.Sendln(IntToStr(stream.Size));
    if TcpClient1.Receiveln = 'ok' then
      TcpClient1.SendBuf(stream, stream.Size);
    TcpClient1.Disconnect;  
  end;
end;

Файл передается, но при открытии пишет что поврежден. Размер файлов совпадает. В чем может быть проблема?
Ответить с цитированием