Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Посылка/прием сложных данных c помощью сокетов   Найти похожие ветки 

 
palan   (2004-03-18 16:09) [0]

Иногда необходимо пересылать по сети не только простые текстовые сообщения, но и сложные структуры (тип record в Паскале)
Напишите пример пожалуйста !!!(Как это будет выглядеть в среде Delphi)


 
Reindeer Moss Eater ©   (2004-03-18 16:25) [1]

Сначала пример конкретного record"а


 
Reindeer Moss Eater ©   (2004-03-18 16:48) [2]

type
TMyRec = record
 W : word;
 I : integer;
 s : shortstring;
end;

TAnotherRec = record
 C   : Cardinal;
 S1,
 S2  : string;
 D   : Double;
end;

procedure TForm1.FormCreate(Sender: TObject);
var m : TMyRec;
   a : TAnotherRec;
   len : dword;
begin
//шлем м
ClientSocket1.Socket.SendBuf(m,sizeOf(TMyRec));

//шлем а
ClientSocket1.Socket.SendBuf(a,SizeOf(Cardinal));
len := Length(a.s1);
len := len shl 16;
len := len + Length(a.s2);
ClientSocket1.Socket.SendBuf(len,SizeOf(DWORD));
ClientSocket1.Socket.SendText(a.s1+a.s2);
ClientSocket1.Socket.SendBuf(a.d,SizeOf(Double));
end;


 
Digitman ©   (2004-03-18 16:50) [3]

THardRecord = packed record
 iField: Integer;
 dtField: TDataTime;
 sField: String[10]; //!!
end;

var
 hr: THardRecord;
..
ClientSocket.ClientType := ctBlocking; //!!
..
ClientSocket.Socket.SendBuffer(hr, sizeof(hr));

...

ServereSocket.ServerType := stThreadBlocking;
..
procedure TMyServerClientThread.ClientExecute;
var
 hr: THardRecord;
begin
..
 ClientSocket.ReceiveBuf(hr, sizeof(hr));
..
end;


 
Digitman ©   (2004-03-18 16:53) [4]


> Reindeer Moss Eater


дальше-то - большая засада)


 
Digitman ©   (2004-03-18 17:01) [5]

сейчас выяснится, что фигурируют huge strings, non-blocking async mode ... и понеслось г. по трубам)))


 
palan   (2004-03-19 10:04) [6]

УВАЖАЕМЫЕ МАСТЕРА!!!
Все это хорошо, но не очень наглядно и понятно.
Не могли бы, если вас не затруднить прислать работающие исходники
клиента и сервера по адресу: palan_sob@mail.ru


 
Reindeer Moss Eater ©   (2004-03-19 10:12) [7]

Уважаемый, ты буквы поста № 1 читал?


 
Polevi ©   (2004-03-19 11:29) [8]

>palan   (19.03.04 10:04) [6]
а деньги ?


 
Digitman ©   (2004-03-19 12:05) [9]


> Polevi ©   (19.03.04 11:29) [8]


"Я - человек, измученный нарзаном" (с) Монтер Мечников .. в соавторстве с автором поста))


 
palan   (2004-03-19 14:23) [10]

Значит не хотите помочь человеку, который второй день ломает голову над этой проблемой?


 
Reindeer Moss Eater ©   (2004-03-19 14:34) [11]

...А на четвертый день Зоркий Глаз заметил, что в сарае не хватает четвертой стены ...

У тебя декларацию записи просили.
Припоминаешь, человек с проблемой?


 
Digitman ©   (2004-03-19 14:44) [12]

"Искаженный микропленкой ГУМ стал маленькой избенкой,
И уж вспомнить неприлично. чем предстал театр МХАТ .."

(с)



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
3-1079417798
EvgeniyR
2004-03-16 09:16
2004.04.11
StoredProc через Query


3-1081758841
Alex2004
2004-04-12 12:34
2004.04.11
Как уменьшить размер кэша


4-1075901955
Samael6
2004-02-04 16:39
2004.04.11
И снова перехват АПИ


9-1070054990
mrAld
2003-11-29 00:29
2004.04.11
FPS и потоки


14-1081863939
miwa
2004-04-13 17:45
2004.04.11
О встречах мастаков вообще...