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

Вниз

Как отправить при помощи "ServerSocket" Переменную типа массив?   Найти похожие ветки 

 
Galiaf   (2005-04-26 22:33) [0]

Переменная A:array[0..10] of string, необходимо послать клиенту всё содержимое этой пераменной. Кто знает, поделитесь


 
kami ©   (2005-04-27 00:33) [1]

Проще всего так:
(s,s1:array[0..10] of string)
На сервере:
procedure TForm1.Button1Click(Sender: TObject);
var
  ms:TMemoryStream;
begin
    ms:=TMemoryStream.Create;
    ms.Write(s,SizeOf(s));
    ms.Seek(0,soFromBeginning);
    ServerSocket.Socket.Connections[0].SendStream(ms);
end;

На клиенте:
procedure TForm1.ClientSocketRead(Sender: TObject;Socket:TCustomWinSocket);
begin
      Socket.ReceiveBuf(s1,Socket.ReceiveLength);
end;

Но так неправильно, пересылка массива может разбиться по пакетам, да и сам массив может не влезть в один пакет. Я бы пересылал в первую очередь размер массива (sizeof), а потом - сам массив.
На приемной стороне использовал бы тот же ReceiveBuf, но дописывал в созданный при приеме первого пакета поток, контролируя оставшуюся длину. После приема всех данных - записать из потока в массив.


 
Digitman ©   (2005-04-27 08:14) [2]


> Galiaf   (26.04.05 22:33)


в цикле от 0 до 10 посылаешь сначала длину i-й строки, следом - собственно стр.данные i-й строки

можно поступить и еще смешнее - загрузить свой массив в StringList, затем прочитать в стр.переменную s св-во StringList.Lines.Text, далее послать длину s и следом собственно буфер s


 
atruhin ©   (2005-04-28 13:07) [3]

>>kami ©   (27.04.05 00:33) [1]
>> Но так неправильно,
Так точно не правильно так как ты оправил только указатели на строки.


 
atruhin ©   (2005-04-28 13:07) [4]

>>kami ©   (27.04.05 00:33) [1]
>> Но так неправильно,
Так точно не правильно так как ты оправил только указатели на строки.


 
kami ©   (2005-04-28 22:03) [5]

Сознаю свою вину, меру, степень, глубину
И прошу меня направить на текущую войну
Нет войны - я все приму -
Ссылку, каторгу, тюрьму...
Но желательно в июле
И желательно  - в Крыму.
:)
(с)Леонид Филатов. Про Федота-стрельца


 
atruhin ©   (2005-04-29 11:19) [6]

Ну так до июля и отложим :)



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

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

Наверх




Память: 0.48 MB
Время: 0.048 c
1-1121770761
td
2005-07-19 14:59
2005.08.07
как скопировать текст из нескольких текстовых файлов в один?


4-1118215991
kkostik
2005-06-08 11:33
2005.08.07
Drag&Drop


14-1120682822
GanibalLector
2005-07-07 00:47
2005.08.07
Что это ?


14-1121262293
Pil
2005-07-13 17:44
2005.08.07
Где взять документацию для XLReport на русском языке?


4-1118325354
Андрей Жук
2005-06-09 17:55
2005.08.07
Какой функцией можно получить параметры памяти процесса