Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.069 c
15-1331135502
Jeer
2012-03-07 19:51
2013.03.22
С праздником Весны !


3-1278159587
alex810
2010-07-03 16:19
2013.03.22
Запрос с нечувствительностью к регистру


15-1329634482
Barlo
2012-02-19 10:54
2013.03.22
Работа с bdGrid


2-1342265873
rioko
2012-07-14 15:37
2013.03.22
StringGrid и удаление выделеных строк.


2-1335889883
PacMan
2012-05-01 20:31
2013.03.22
TThread копирование файла в 2-х потоках





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский