Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StringList & WinSocket [D7, Win95/98, Win2k, WinXP]


SergeyIgudin ©   (2004-07-26 15:51:00) 

Вопрос такой:
у меня есть StringList(TStringList) и есть ServerSocket(TServerSocket), я заполняю СтрингЛист N-ым количеством строк, причем не только строками но и какими-нибудь объектами:
.............................
var
Cln_msg, Cln_msg2:TStringList;
begin
Cln_msg:= TStringList.Create;
Cln_msg.Add(Edit1.Text);
Cln_msg.Add(Edit2.Text);
Cln_msg.Add(Edit3.Text);
Cln_msg2:= TStringList.Create;
Cln_msg2.Add(Edit3.Text);
Cln_msg2.Add(Edit3.Text);
Cln_msg2.Add(Edit3.Text);
Cln_msg.AddObject('Cln_msg2', Cln_msg2);
......................................
и т.д.

отправить его по сокету вроде как не проблема... я делаю вот как:
................
i:= ?????? //Кол-во байт занятых заполненным стринглистом
           //что использовать sizeof или еще че?  
ServerSocket.Socket.SendBuf(Cln_msg, i);
................

основная моя беда это принять этот буффер...
клиентское приложение выдает ошибку (там чет про память...)

"принимаю" я так (приложение-клиент):
procedure TForm1.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
var
 Cln_msg: TStringList;
 i: Integer;
begin
 Cln_msg:= TStringList.Create;
 i:= Socket.ReceiveLength;
 Socket.ReceiveBuf(Cln_msg, i);
 Edit1.Text:= Cln_msg.Strings[0];
 Edit2.Text:= Cln_msg[1];
 Edit3.Text:= Cln_msg[2];
..........................

и вот тута и валятся всякие ошибки!!!!!

ЧЕ ДЕЛАТЬ? ПОДСКАЖИТЕ КТОНИТЬ!!!!


Palladin   (2004-07-29 02:37:00) [1]

Ну как умудряются... просто... ставят делфи и умудряются... потихоньку... типа прогеры...


Kurtevich   (2004-07-28 18:06:00) [2]

Слышите, люди, может я конечно ламер, но я ваще не понимаю как это вы умудряетесь пересылать через тсп/ип обьект, состоящий из указателей на память, а потом еще на том конце удивляться, почему то, на что указывают указатели, не переправилось?... или тут чего-то недописано?.... интересно еще, как же все-таки вычисляется размер буфера?...


Digitman   (2004-07-27 08:22:00) [3]

ServerSocket.Socket.SendBuf(Cln_msg, i);
Socket.ReceiveBuf(Cln_msg, i);

ты вообще-то понимаешь, какую чепуху ты написал в этих строках ?

> Кол-во байт занятых заполненным стринглистом


Доступ к буферу данныхстринг-листа осуществляется через св-во Text, а размер буфера данныхрассчитывается с пом. Length(Text)


SergeyIgudin   (2004-07-27 08:06:00) [4]

и всетаки?!?!?


Digitman   (2004-07-26 15:57:00) [5]


> ЧЕ ДЕЛАТЬ


книжки читать


Наверх

Титульная страница Поиск, карта сайта Написать письмо