![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
получение файла код клиента
Код:
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;получаю разрешение ок передаю размер получаю разрешение и отправляю файл но похоже что никаких разрешений не приходит |
|
#2
|
||||
|
||||
|
Код:
else if msg = 'base' then
begin
ClientSocket.Sendln('ok');
stream := TMemoryStream.Create;
msg := ClientSocket.Receiveln;
sz := StrToInt(msg);
stream.SetSize(sz);
ClientSocket.Sendln('ok');
ClientSocket.ReceiveBuf(stream.Memory^, sz);
stream.SaveToFile('ServBase\base1.txt');
stream.Free;
end;вопрос как сделать оповещение о загрузке/отправке файла? сразу после TcpClient1.SendBuf(stream.Memory^, stream.Size); ClientSocket.ReceiveBuf(stream.Memory^, sz); вставлять Отправлено/принято? |
|
#3
|
||||
|
||||
|
оповещение сделал..
при сохранении файла на клиенте выдаю что окей при сохранении на сервере шлю клиенту окей но все таки как решить что иногда приходит не полностью вместе с р*є р*є р*є р*є р*є р*є р*є |
|
#4
|
||||
|
||||
|
черт, файл весом 600кб передался на половину а остальную половину заполнили пробелы
я где то читал что подключение закрывается до передачи файла подскажите что сделать |
|
#5
|
|||
|
|||
|
а как долго делают монтаж локальной сети?
|