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

Вниз

Передача записи по сети через сокеты   Найти похожие ветки 

 
Vladimir ©   (2009-12-20 22:01) [0]

Здравствуйте! Знаю что тема объезжена уже, но все же. Есть клиент и сервер использующие TClient и TServer Socket соответственно. При передаче TStringList через SendBuf переменная типа TStringList пропадает где то в сети, вообщем приходит пустой. Как быть?


 
Сергей М. ©   (2009-12-20 23:17) [1]


> Как быть?


Не передавать переменную типа TStringList.
Ибо тема объезжена уже.


 
Сергей М. ©   (2009-12-20 23:24) [2]

Результат := SendBuf(PChar(StringList.Text)^, Length(StringList.Text))


 
Vladimir ©   (2009-12-21 00:17) [3]

а что делать у меня...

//Описание типа информации о клиенте
type
 TClientInfo = record
   Nik: string[20];            //Ник
   Family: string[50];         //Фамилия
   Name: string[50];           //Имя
   **********: string[50];      //Отчество
   Birthday: string[25];       //Дата рождения
   ZodiacalSign: string[20];   //Знак зодиака
   Email: string[30];          //Почтовый ящик
   Phone: string[20];          //Номер телефона
   IP: string[15];             //IP-адрес
   Password: string[20];       //Пароль
   ClientRegDate: string[25];  //Дата регистрации
 end;

type //описание записи типа TConnectSets
 TConnectSets = record
   ********: string[35];        
   *********: integer;            
   **********: string[35];      
   Password: string[35];     // пароль -//-//-
 end;

type //описание записи типа TMsgSets
 TMsgSets = record
   *****: TConnectSets;    // Настройки подключения
   Field_From: string[35];         // От кого
   Field_To: string[35];           // Кому
   ******: string[50];      
   *******: TStringList;    
 end;

//запись с описанием сообщения чата
type
 TChatMsg = record
   From: string[20]; //От кого
   Msg: string[100];   //Сообщение
 end;

//запись для обмена информацией между клиентом и сервером
type
 TDataExchange = record
  ActionCode: byte;           //Код действия
  ClientData: TClientInfo;    //Информация о клиенте
  MiniChatData: TChatMsg;     //сообщение мини-чата
  *: TMsgSets;        
  **: integer;        
  ***: TStringList;    
  ****: boolean;  
 end;

Как тогда быть?? Чем можно здесь заменить TStringList? Если передаются данные через DataExchange то есть SendBuf(DataExchange, SizeOf(DataExchange)) ??


 
Anatoly Podgoretsky ©   (2009-12-21 00:23) [4]

> Vladimir  (21.12.2009 00:17:03)  [3]

Если по длине string[255] не тянет, то тогда array [1..n] of char
Главное что бы была фиксированая длина


 
Vladimir ©   (2009-12-21 00:28) [5]

Да, 255 маловато) Попробую с массивом тогда, Спасибо!


 
Дмитрий Белькевич   (2009-12-22 13:43) [6]

>Результат := SendBuf(PChar(StringList.Text)^, Length(StringList.Text))

IMHO CommaText лучше.



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

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

Наверх




Память: 0.48 MB
Время: 0.082 c
2-1332577830
Pcrepair
2012-03-24 12:30
2013.03.22
TStringList и перевод символов в нижний регистр


11-1244182809
QAZ
2009-06-05 10:20
2013.03.22
HeapMM vs FastMM


15-1334133391
ПЛОВ
2012-04-11 12:36
2013.03.22
вопрос по TListView


15-1330693838
Scott Storch
2012-03-02 17:10
2013.03.22
Delta Compression API


15-1336720167
alexdn
2012-05-11 11:09
2013.03.22
Что первое?