Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.036 c
11-1082007349
nester
2004-04-15 09:35
2004.10.31
Как создать поток без MCK?


1-1098116291
IceT
2004-10-18 20:18
2004.10.31
Деревья


4-1096390666
hgd
2004-09-28 20:57
2004.10.31
Скажите как нажать кнопку в другой открытой программе


14-1097750932
TUser
2004-10-14 14:48
2004.10.31
Интересно, как такое можно сделать


3-1096628791
DesWind
2004-10-01 15:06
2004.10.31
Обновление лукап поля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский