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

Вниз

Проблема с передачей сложных данных   Найти похожие ветки 

 
Airs ©   (2002-06-07 17:51) [0]

Есть клиент, есть сервер. Передаю такую переменную
type CPU = record
Architecture:Integer;
Count:Integer;
Level:Integer;
Revision:Integer;
Version:String;
ActiveProcessorMask:Integer;
CPUSpeed:String;
RealCPUSpeed:String;
end;
Передаю с использованием буфера т.е., на стороне клиента:
ClientSocket.Socket.SendBuf(CPUI,sizeof(CPUI));
Принимаю на стороне сервера:
ServerSocket.Socket.Connections[i].ReceiveBuf(CPUI,ServerSocket.Socket.Connections[i].ReceiveLength);

Где CPUI:CPU;
Выдает ошибку при присваивании например Label1.Caption:=CPUI.Version;

Если делаю структуру
type CPU = record
Architecture:Integer;
Count:Integer;
Level:Integer;
Revision:Integer;
Version:String[2];
ActiveProcessorMask:Integer;
CPUSpeed:String[2];
RealCPUSpeed:String[2];
end;
То все нормально.... Как справиться с этой проблемой?
Видимо не может передать по сокету большое кол-во байт? или в чем проблема?


 
Digitman ©   (2002-06-07 18:47) [1]

в том, что String - не тоже самое. что String[]
поле твоей структуры типа String хранит указатель на управляющую структуру существующей (в момент передачи) строки а АП передающего процесса, этот указатель ты и передаешь вместо собственно строки. А в АП принимающего процесса этот указатель - ничто !
Поле же типа String[] хранит именно саму строку, поэтому и передача/прием ее корректны.

Для передачи поля типа String необходимо передать сначала размер строки (Length), затем уже - собственно строку (PChar)



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
1-60660
pvasya
2002-08-09 10:02
2002.08.19
UNICODE


1-60614
Markvolsh
2002-08-07 18:39
2002.08.19
checkboxes and labels


14-60825
Shurik_sh
2002-07-24 13:53
2002.08.19
Подскажите, где я могу скачать дистрибутив Delphi?


3-60491
SerKom
2002-07-26 20:04
2002.08.19
Как востановить таблицу Paradox - Corrupt table/index header.


1-60732
Aleksandr
2002-08-06 15:22
2002.08.19
Делфя вдруг стала регистрацию просить!