Главная страница
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.47 MB
Время: 0.043 c
4-1130256618
Павел
2005-10-25 20:10
2005.12.25
Работа с модемом


1-1133426979
general
2005-12-01 11:49
2005.12.25
Ограничение на длину элемента списка в TMemo


14-1133514288
Yuri Btr
2005-12-02 12:04
2005.12.25
Скорость RadioEthernet


2-1134314526
Змей
2005-12-11 18:22
2005.12.25
свернуть и восстановить


14-1133597294
psa247
2005-12-03 11:08
2005.12.25
Константы Server 2003 !