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

Вниз

Проблемма при отправке буфера   Найти похожие ветки 

 
Piero   (2005-09-15 17:25) [0]

Настроил SocketServer и SocketClient друг на друга, строчки отсылаю нормально, но при отправке массива байт, получаю не то, что посылал, подскажите, где я торможу

//Прием
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var s: String;
   buf : array of byte;
   i : integer;
  t1 : file of byte;
begin
try
  setlength(buf,Socket.ReceiveLength);
  socket.ReceiveBuf(buf,length(buf));
 for i := 1 to length(buf)  do write(t1,buf[i]);
 closefile(t1);
except
//
end;
end;

//Отправка
procedure TForm1.Button1Click(Sender: TObject);
var b : array of byte;
    i : integer;
begin
assignfile(t2,FilenameEdit2.Text);
reset(t2);
i:=0;
while not eof(t2) do
 begin
  setlength(b,length(b)+1);
  read(t2,b[i]);
  i:=i+1;
 end;  //while

clientSocket1.Socket.SendBuf(b,length(b));
end;

спасибо


 
Piero   (2005-09-15 17:34) [1]

да и забыл сказать, по объему отправляемые данные и то, что получаю одинакового размера,  акогда смотрю файл, то разные


 
Reindeer Moss Eater ©   (2005-09-15 20:26) [2]

var b : array of byte;

переменная-динамический  массив это всегда ссылка.

В то время как :
SendBuf(var Buf; Count : integer);

То есть параметром ожидается адрес участка памяти, а не значение указателя на него.


 
Reindeer Moss Eater ©   (2005-09-15 20:32) [3]

И при приеме, кстати, тоже самое.


 
Piero   (2005-09-15 22:05) [4]

Понял, а как правильно, если я заранее не знаю размер отправляемых данных?


 
Reindeer Moss Eater ©   (2005-09-15 23:07) [5]

Размер данных к твоей ошибке отношения не имеет.
Вместо имени переменной в SendBuf надо указывывать адрес первого элемена  массива. И при приеме тоже самое.


 
Piero   (2005-09-17 13:51) [6]

Спасибо



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

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

Наверх




Память: 0.48 MB
Время: 0.04 c
14-1133268593
Mike Kouzmine
2005-11-29 15:49
2005.12.25
Бедные немцы!


4-1130396689
DancerMan
2005-10-27 11:04
2005.12.25
TWebBrowser запретить выделение


2-1133878661
vhs
2005-12-06 17:17
2005.12.25
не рабоатет клавиши delete ?!


14-1133783193
Bogdan1024
2005-12-05 14:46
2005.12.25
помогите пожалуйста придумать задачу


4-1130414953
Rentgen
2005-10-27 16:09
2005.12.25
Как можно сменить программно пароль учетной записи (текущей)