получение файла код клиента
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
msg : string;
sz : integer;
stream: TMemoryStream;
begin
tcpClient1.RemoteHost:=Edit1.Text;
tcpClient1.Active := true;
if TcpClient1.Connect then
begin
TcpClient1.Sendln('basa');
msg := Tcpclient1.Receiveln;
sz := StrToInt(msg);
stream := TMemoryStream.Create;
stream.SetSize(sz);
Tcpclient1.ReceiveBuf(stream.Memory^, sz);
stream.SaveToFile('base.txt');
TcpClient1.Disconnect;
end
else showmessage('Error connecting');
tcpClient1.Active := false;
end;
код сервера
Код:
procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
stream: TMemoryStream;
msg: string;
sz: integer;
begin
msg := ClientSocket.Receiveln;
if (msg= 'basa') then
begin
stream := TMemoryStream.Create;
stream.LoadFromFile('ServBase\base1.txt');
ClientSocket.Sendln(inttostr(stream.Size));
ClientSocket.SendBuf(stream.Memory^, stream.Size);
end
при получениий он не полный и плюс вот это в конце, и это по локалке
Цитата:
р*є
р*є
р*є
р*є
р*є
р*є
р*є
|
да и собственно как передать данные с клиента
сервер
Код:
procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
stream: TMemoryStream;
msg: string;
sz: integer;
begin
msg := ClientSocket.Receiveln;
if (msg= 'basa') then
begin
stream := TMemoryStream.Create;
stream.LoadFromFile('ServBase\base1.txt');
ClientSocket.Sendln(inttostr(stream.Size));
ClientSocket.SendBuf(stream.Memory^, stream.Size);
end
else if msg = 'base' then
begin
ClientSocket.Sendln('ok');
stream := TMemoryStream.Create;
sz := StrToInt(msg);
stream.SetSize(sz);
ClientSocket.Sendln('ok');
ClientSocket.ReceiveBuf(stream.Memory^, sz);
stream.SaveToFile('ServBase\base1.txt');
stream.Free;
end;
end;
клиент
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
stream: TMemoryStream;
msg: string;
begin
tcpClient1.Active := true;
if TcpClient1.Connect then
begin
stream := TMemoryStream.Create;
stream.LoadFromFile('base.txt');
TcpClient1.Sendln('base');
if TcpClient1.Receiveln = 'ok' then
TcpClient1.Sendln(IntToStr(stream.Size));
if TcpClient1.Receiveln = 'ok' then
TcpClient1.SendBuf(stream.Memory^, stream.Size);
tcpClient1.Active := false;
TcpClient1.Disconnect;
end
else showmessage('Error connecting');
end;
отправляю сигнал о передаче base
получаю разрешение ок
передаю размер
получаю разрешение и отправляю файл
но похоже что никаких разрешений не приходит