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

Вниз

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

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

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


 
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: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;


 
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: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 16:53) [4]


> Reindeer Moss Eater


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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


 
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]


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


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


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


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


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

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


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

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


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

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

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


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

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

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


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

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

(с)


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

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

(с)



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

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

Наверх




Память: 0.5 MB
Время: 0.032 c
1-1082655742
Seldon
2004-04-22 21:42
2004.05.09
Не получается TButton.Default :(


4-1078822013
twinc
2004-03-09 11:46
2004.05.09
WinXP shutdown


14-1082046598
BRT
2004-04-15 20:29
2004.05.09
написание FLASH PLAYERа для моб.тел. Symbian ?


1-1082487064
Shopot
2004-04-20 22:51
2004.05.09
Перетаскивание компонентов.


8-1076622235
SiDr
2004-02-13 00:43
2004.05.09
Яркость пикселя





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский