Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемма при отправке буфера


Piero ©   (2005-09-15 17:25:00) 

Настроил 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-17 13:51:00) [1]

Спасибо


Reindeer Moss Eater   (2005-09-15 23:07:00) [2]

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


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

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


Reindeer Moss Eater   (2005-09-15 20:32:00) [4]

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


Reindeer Moss Eater   (2005-09-15 20:26:00) [5]

var b : array of byte;

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

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

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо