Главная страница
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.052 c
15-1347866015
brother
2012-09-17 11:13
2013.03.22
Анимация в Excel


15-1338529424
alexdn
2012-06-01 09:43
2013.03.22
Куда выложить


15-1339653614
KSergey
2012-06-14 10:00
2013.03.22
Ассемблерные вставки и переносимость кода


15-1353946630
Разведка
2012-11-26 20:17
2013.03.22
Кто знает как использовать DCPCrypt библиотеку?


15-1347981872
dm_member
2012-09-18 19:24
2013.03.22
(Специфичный случай) Сохранение строк в байтовом формате