Форум: "Сети";
Текущий архив: 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.039 c