كيف يمكن نقل ملف عبر الانترنت بواسطة برنامجين يعملان بواسطة مكونات السوكت سارفر و الكليونت
لقد راجعت موضوع من المنتدى واتبعته حرفيا الا اني لم استطع الاكمال معه لم أفهمه جيدا.
وشكرا.
و عليكم السلام و رحمة الله
مرحبا بك أخي صهيب في المنتدى
كود :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;
type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
btnTestSockets: TButton;
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure btnTestSocketsClick(Sender: TObject);
private
FStream: TFileStream;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
iLen: Integer;
Bfr: Pointer;
begin
iLen := Socket.ReceiveLength;
GetMem(Bfr, iLen);
try
Socket.ReceiveBuf(Bfr^, iLen);
FStream.Write(Bfr^, iLen);
finally
FreeMem(Bfr);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FStream := nil;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(FStream) then
begin
FStream.Free;
FStream := nil;
end;
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
if Assigned(FStream) then
begin
FStream.Free;
FStream := nil;
end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
FStream := TFileStream.Create('c:\temp\test.stream.html', fmCreate or fmShareDenyWrite);
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendStream(TFileStream.Create('c:\temp\test.html', fmOpenRead or fmShareDenyWrite));
end;
procedure TForm1.btnTestSocketsClick(Sender: TObject);
begin
ServerSocket1.Active := True;
ClientSocket1.Active := True;
end;
end.
من الموقع
كود :
http://www.delphitricks.com/source-code/internet/send_a_file_from_a_tserversocket_to_a_tclientsocket.html
السلام عليكم و رحمة الله تعالى وبركاته
شكرا جزيلا و أنا جد مسرور بترحيبكم
و أنا أسف لتأخري عن الرد , فقد اطلعت على الرد اليوم فقط ,فانا أعاني من صعوبة في الاتصال بالشبكة.
البرنامج يحتوي على clientSocket1 والثاني على مكون serverSocket1 كلاهما برنامج شات شبيه بالسكايب
كيف يرسل الاول الذي يحتوي على serverSocket1 ملف الى الثاني بعد اختيار اسمه او رقم IP من قائمة Listviewr1
الى الثاني الذي يحتوي على clientSocket1 ويكون بمقدور الثاني الحرية في مكان الحفظ , فهما برنامجين منفصلين تجمعهما شبكة الانترنت .
السلام عليكم
أنظر في المرفقات
قيد التجربة و شكرا جزيلا ..