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

Вниз

саморекурсия процедуры ClientSocket1Read   Найти похожие ветки 

 
redlord   (2007-04-06 20:55) [0]

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

что надо чтоб это проверить:
приложение сервер(отдельное от клиента) с компонентом serversocket
отсылающее клиенту например 3 байта (123)
//--------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
for n:= 0 to serversocket1.Socket.ActiveConnections-1 do
 begin
  serversocket1.Socket.Connections[n].SendText("123");
 end;
end;
//----------------------------------------------------------

и приложение клиента (отдельное от сервера) с компонентом
clientsocket
получающее данные, но выбирающее данные из буфера
сокета по одному байту
//----------------------------------------------------------
procedure TForm1.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
var
s:char;
begin
  socket.ReceiveBuf(s,1);
  listbox1.Items.add(s);listbox1.Refresh;
end;
//-----------------------------------------------------------

в результате процедура ClientSocket1Read будет вызвана 3 раза
ето хорошо видно если на стоку socket.ReceiveBuf(s,1);
поставить брекпоинт


 
redlord   (2007-04-07 12:16) [1]

можно ли боротся с выше упомянутым явлением
просто мне нужно контролируя приходящии данные накопить их в буфере сокета а потом забрать, а саморекурсия не дает выйти из замкнутого цикла пока я не выберу все данные


 
Сергей М. ©   (2007-04-09 08:18) [2]

Нет тут никакой "саморекурсии".
Это совершенно нормальное поведение программы.



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

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

Наверх




Память: 0.47 MB
Время: 0.029 c
15-1195120254
WFS
2007-11-15 12:50
2007.12.16
Как переименовать Unit?


2-1195635463
Kolan
2007-11-21 11:57
2007.12.16
Как опредилить версию делфи для усл компиляции?


11-1181215785
vpbar
2007-06-07 15:29
2007.12.16
Можно ли изменить цвет отдельной строчки в TKOLListView ?


15-1195449555
Slider007
2007-11-19 08:19
2007.12.16
С днем рождения ! 19 ноября 2007 понедельник


15-1195126234
БарЛог
2007-11-15 14:30
2007.12.16
Домен контроллер на windows 2003