Главная страница
    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.089 c
2-1337145645
Verner
2012-05-16 09:20
2013.03.22
Переопределение свойства класса-наследника


15-1350966507
И. Павел
2012-10-23 08:28
2013.03.22
Чужая админка сайта или своя?


15-1333053002
Юрий
2012-03-30 00:30
2013.03.22
С днем рождения ! 30 марта 2012 пятница


2-1329473098
harisma
2012-02-17 14:04
2013.03.22
Библиотека типов в Делфи


15-1346949003
Опять я
2012-09-06 20:30
2013.03.22
Вопрос по Яндекс-почте.





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