![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
> ЧЕ ДЕЛАТЬ
книжки читать