![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не могу разобраться
Павлуха © (2006-09-07 13:14:00)Не могу не как разобраться со статьей http://delphiworld.narod.ru/base/img_by_socket.html, особенно с серверной частью, какие там используются переменные BUF? Напишите пожалуйсто нармальный исходник с синтаксом delphi.
fly_mer (2006-09-07 17:03:00) [1]Сергей М. третий раз повторить? :)
WeeK (2006-09-07 15:45:00) [2]
> Сергей М. © (07.09.06 15:10) [5]
Подскажи как сделать правильно, спасибо!
Павлуха (2006-09-07 15:45:00) [3]
> Сергей М. © (07.09.06 15:10) [5]
Подскажи как сделать правильно, спасибо!
lessard (2006-09-07 15:14:00) [4]Сергей, я сам никогда не имел дела с сокетами, писал на глазок. И поправь, если знаешь, а не раздувай ситуацию. Спасибо. Пух.
Сергей М. (2006-09-07 15:10:00) [5]
> ibLen := ServerSocket1.Socket.ReceiveLength;
> ServerSocket1.Socket.ReceiveBuf(buf^, ibLen);
Гениально.
lessard (2006-09-07 13:40:00) [6]М.. и ещё GetMem для buf :)
lessard (2006-09-07 13:38:00) [7]Ах да! И ещё не забудь сокеты инициализировать :)
lessard (2006-09-07 13:37:00) [8]Попробуй так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Sockets, ScktComp;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
procedure SendStream(const Fn: String; Im: TImage);
function ReceiveStream: TBitmap;
implementation
{$R *.dfm}
procedure SendStream(const Fn: String; Im: TImage);
var FS: TFileStream;
Position: Integer;
begin
FS := TFileStream.Create(Fn, fmOpenRead or fmShareDenyNone);
Im.Picture.Bitmap.SaveToStream(FS);
FS.Seek(0, 0);
ClientSocket1.Socket.SendStream(FS);
FS.Destroy;
end;
function ReceiveStream: TBitmap;
var ibLen: Integer;
buf: pchar;
FS: TFileStream;
begin
FS := TFileStream.Create('C:\data.bmp', fmCreate or fmShareExclusive);
FS.Seek(0, 0);
ibLen := ServerSocket1.Socket.ReceiveLength;
ServerSocket1.Socket.ReceiveBuf(buf^, ibLen);
FS.WriteBuffer(buf^, ibLen);
FS.Seek(0, 0);
Result := TBitmap.Create;
Result.LoadFromStream(FS);
FS.Destroy;
end;
end.
default (2006-09-07 13:19:00) [9]забыл пообещать потенциальному писарю ключи от квартиры где деньги лежат