Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.12.2011, 23:39
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию передача данных TcpServer TcpClient

получение файла код клиента
Код:
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
получаю разрешение ок
передаю размер
получаю разрешение и отправляю файл

но похоже что никаких разрешений не приходит
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter