Главная страница
    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.47 MB
Время: 0.033 c
1-1097652591
diabolik_krsk
2004-10-13 11:29
2004.10.31
Извлечение названия файла без расширения


14-1097599168
Nick Denry
2004-10-12 20:39
2004.10.31
Конвертер SVG -> растр.


4-1096110155
dmk
2004-09-25 15:02
2004.10.31
Длина имени принтера в DeviceMode


6-1093178110
Alena
2004-08-22 16:35
2004.10.31
Сокеты, Принятые файлы некорректны относительно исходных ?!


1-1097720005
Fktrc
2004-10-14 06:13
2004.10.31
Класс TTHread





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский