30-10-2012, 10:39 AM
السلآم عليكم ورحمة الله وبركاته ..
كيف يمكنني أرسال ملف من ServerSocket الى ClientSocket وحفظه في مجلد معين ؟
استخدم الطريقة التالية لكنها غير ناجحة وفيها اخطاء كثيراً
السيرفر
العميل :
كيف يمكنني أرسال ملف من ServerSocket الى ClientSocket وحفظه في مجلد معين ؟
استخدم الطريقة التالية لكنها غير ناجحة وفيها اخطاء كثيراً
السيرفر
PHP كود :
private
Stream: TMemoryStream;
,,,,,
procedure TForm10.pnchk1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var s,r,str,all_Room:string;
Size,i,n:integer;
begin
S:=utf8Decode(Socket.ReceiveText);
n:=pos('@',S);
if n>0 then
begin
str:=copy(S,1,n-1);
if str='*Mr2*' then
begin
try
Stream:= TMemoryStream.Create;
Stream.LoadFromFile('e:\MorvaServer\MorvaC.jpg');
Size:= Stream.Size;
for i:=0 to pnchk1.Socket.ActiveConnections-1 do
begin
pnchk1.Socket.Connections[i].SendBuf(Size,SizeOf(Size));
end;
for n:=0 to pnchk1.Socket.ActiveConnections-1 do
begin
pnchk1.Socket.Connections[n].SendStream(Stream);
end;
except
end;
end;
end;
end;
PHP كود :
private
Stream: TMemoryStream;
FSize: Integer;
writing: Boolean;
,,,,,
procedure TForm1.Rom1Read(Sender: TObject; Socket: TCustomWinSocket);
var
BytesReceived: Longint;
CopyBuffer: Pointer;
ChunkSize: Integer;
TempSize: Integer;
FS: TFileStream;
const
MaxChunkSize: Longint = 8192;
begin
try
If FSize=0 then
begin
If Socket.ReceiveLength>SizeOf(TempSize) then
begin
Socket.ReceiveBuf(TempSize,SizeOf(TempSize));
Stream.SetSize(TempSize);
FSize:= TempSize //Threadsafe code!
End;
End;
If (FSize>0) and not(writing) then
begin
GetMem(CopyBuffer, MaxChunkSize); { allocate the buffer }
writing:= True;
While Socket.ReceiveLength>0 do
Begin
ChunkSize:= Socket.ReceiveLength;
If ChunkSize > MaxChunkSize then ChunkSize:= MaxChunkSize;
BytesReceived:= Socket.ReceiveBuf(CopyBuffer^,ChunkSize);
Stream.Write(CopyBuffer^, BytesReceived);
Dec(FSize,BytesReceived);
End;
If FSize=0 then
Stream.SaveToFile('C:\MorvaC\MorvaC.jpg);
Socket.SendText('File received!');
Stream.SetSize(0);
FSize:= 0;
End;
FreeMem(CopyBuffer, MaxChunkSize);
Writing:= False;
except
end;
end;
اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت
فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم

