Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

TcpClient и TcpServer или Indy Delphi 7   Найти похожие ветки 

 
Asd   (2004-08-20 21:11) [0]

Подскажите плиз как сделать обмен файлами по сети если можно дайти исходничок.

Ещё не подскажите чё я делаю не так, это я хочу удалённо выключить компьютер.

procedure TForm1.Button4Click(Sender: TObject);
begin
 TcpClient1.RemoteHost := edtRemoteHost.Text;
 try
   if TcpClient1.Connect then
     TcpClient1.Sendln("Zew0");
 finally
   TcpClient1.Disconnect;
 end;
end;

procedure TForm1.TcpServer1Accept(Sender: TObject;
 ClientSocket: TCustomIpClient);
var
 s: string;
 DataThread: TClientDataThread;
begin
 s := ClientSocket.Receiveln;
 if s="Ris1" then
 Ris;
end;


 
Klopan ©   (2004-08-20 21:20) [1]


procedure TForm1.Image1Click(Sender: TObject);
begin
 // Это процедура для открытия сокета на ПРИЁМ (RECEIVING).
 // Button1.Click is this procedure as well.
 ClientSocket1.Active:= true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 // Открытие ОТПРАВЛЯЮЩЕГО (SENDING) сокета.
 ServerSocket1.Active:= true;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
 // Посылаем команду для начала передачи файла.
 Socket.SendText("send");
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
 s, sl: string;
begin
 s:= Socket.ReceiveText;
 // Если мы не в режиме приёма:
 if not Reciving then
 begin
   // Теперь нам необходимо получить длину потока данных.
   SetLength(sl, StrLen(PChar(s))+1); // +1 for the null terminator
   StrLCopy(@sl[1], PChar(s), Length(sl)-1);
   DataSize:= StrToInt(sl);
   Data:= TMemoryStream.Create;
   // Удаляем информацию о размере из данных.
   Delete(s, 1, Length(sl));
   Reciving:= true;
 end;
 // Сохраняем данные в файл, до тех пор, пока не получим все данные.
 try
   Data.write(s[1], length(s));
   if Data.Size = DataSize then
   begin
     Data.Position:= 0;
     Image2.Picture.Bitmap.LoadFromStream(Data);
     Data.Free;
     Reciving:= false;
     Socket.Close;
   end;
 except
   Data.Free;
 end;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
 ms: TMemoryStream;
begin
 // Клиент получает команду на передачу файла.
 if Socket.ReceiveText = "send" then
 begin
   ms:= TMemoryStream.Create;
   try
     // Получаем данные на передачу.
     Image1.Picture.Bitmap.SaveToStream(ms);
     ms.Position:= 0;
     // Добавляем длину данных, чтобы клиент знал,
     // сколько данных будет передано
     // Добавляем #0 , чтобы можно было определить,
     // где заканчивается информация о размере.
     Socket.SendText(IntToStr(ms.Size) + #0);
     // Посылаем его.
     Socket.SendStream(ms);
   except
     // Итак, осталось освободить поток, если что-то не так.
     ms.Free;
   end;
 end;
end;


 
Asd   (2004-08-20 21:43) [2]

Спаисбо но это В Delphi 7 работать не будет там нету этих компонентов, точнее они заменены и с новыми я разобраться не могу.


 
Klopan ©   (2004-08-20 21:50) [3]

установи package файл "dclsockets70.bpl" он в
\Borland\Delphi7\Bin


 
Asd   (2004-08-20 21:57) [4]

Напомни плиз как его установить


 
Klopan ©   (2004-08-20 22:02) [5]

component > install packages > add... > c:\program files\Borland\Delphi7\Bin\dclsockets70.bpl > ok.

усЁ..


 
Asd   (2004-08-20 22:09) [6]

Огромное спасибо


 
Asd   (2004-08-20 22:23) [7]

Ещё не подскажешь Компоненты TNMMsg и TNMMsgSer можно в Delphi 7 установить



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.058 c
14-1097654598
aleshap
2004-10-13 12:03
2004.10.31
Защита


3-1096557345
Vemer
2004-09-30 19:15
2004.10.31
отображение полей TimeStamp в IbExpert


1-1097769683
ev_
2004-10-14 20:01
2004.10.31
Dbgrid


14-1097718843
Думкин
2004-10-14 05:54
2004.10.31
С днем рождения! 14 октября


4-1096369543
Comp
2004-09-28 15:05
2004.10.31
Как отрисовывать графику в STATUSBAR-e?