
15.03.2009, 23:46
|
|
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
Провел на форуме: 1740746
Репутация:
435
|
|
Простите, ночую у родителей, но вот код для примера, который должен на мой взгляд работать.
Код для сервера:
PHP код:
...
RuSrm: TStream;
...
procedure TForm1.FormCreate(...);
begin
RuSrm:= nil;
end;
procedure TForm1.FormDestroy(...);
begin
if Assigned(ComSrm) then
begin
RuSrm.Free;
RuSrm:= nil;
end;
end;
procedure TForm1.ServerSocket1ClientConnect(...);
begin
RuSrm := TStream.Create;
Image1.Picture.Bitmap.SaveToStream(RuSrm);
Socket.SendStream(RuSrm);
end;
procedure TForm1.btnTestSocketsClick(...);
begin
ServerSocket1.Active := True;
end;
end.
Код для клиента:
PHP код:
...
private
ComSrm: TStream;
...
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
iLen: Integer;
Bfr: Pointer;
begin
iLen := Socket.ReceiveLength;
GetMem(Bfr, iLen);
try
Socket.ReceiveBuf(Bfr^, iLen);
ComSrm.Write(Bfr^, iLen);
finally
FreeMem(Bfr);
end;
end;
procedure TForm1.FormCreate(...);
begin
ComSrm := nil;
end;
procedure TForm1.FormDestroy(...);
begin
if Assigned(ComSrm) then
begin
ComSrm.Free;
ComSrm := nil;
end;
end;
procedure TForm1.ClientSocket1Disconnect(...);
begin
if Assigned(ComSrm) then
begin
Image1.Picture.Bitmap.LoadFromStream(ComSrm);
ComSrm.Free;
ComSrm := nil;
end;
end;
procedure TForm1.ClientSocket1Connect(...);
begin
FStream := TStream.Create(ComSrm);
end;
procedure TForm1.btn1SocketsClick(...);
begin
ClientSocket1.Active := True;
end;
end.
Последний раз редактировалось Flame of Soul; 15.03.2009 в 23:48..
|
|
|