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

Вниз

Проблема приёма пакетов через TClientSocket   Найти похожие ветки 

 
sashap   (2007-08-05 00:09) [0]

Здравствуйте!
У меня возникла небольшая проблема с OnRead компонента TClientSocket. Мне нужно друг за другом отослать разные запросы на сервер и сохранить ответы с него. Вот отрывок кода:


procedure TForm1.csConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
 a:=makenewpacket;
 socket.SendText(a);
end;

procedure TForm1.csRead(Sender: TObject; Socket: TCustomWinSocket);
begin
 operate(Socket.ReceiveText);
 if socketcount<10 then begin
   a:=makenewpacket;
   socket.SendText(a);
 end;
end;


Должна происходить цикличность: из csRead отправили, в csRead получили , отправили, получили и т.д. Но этого не происходит и программа прекращает работу, получив всего один ответ. Подскажите,  решение, пожалуйста.


 
patrushevd1982 ©   (2007-08-14 00:13) [1]

procedure TForm1.csRead(Sender: TObject; Socket: TCustomWinSocket);
begin
operate(Socket.ReceiveText);
if socket.receivelength > 0 then begin
  a:=makenewpacket;
  socket.SendText(a);
end;
end;


 
Slym ©   (2007-08-14 04:53) [2]

sashap   (05.08.07 0:09)
стабильной работы не добьешся: в csRead может прийти и пол команды и 2 команды (разбитие/склейка пакетов)... как будешь разбираться?
меняй концепцию


 
Сергей М. ©   (2007-08-14 08:05) [3]


> sashap   (05.08.07 00:09)


SendText - это функциональный метод.


 
sashap   (2007-08-16 13:24) [4]

patrushevd1982, Slym, Сергей М., спасибо большое за ответы!
Я попробовал IdHTTP из Indy, оказалось то, что и нужно было.


 
Сергей М. ©   (2007-08-16 13:43) [5]


> попробовал IdHTTP из Indy, оказалось то, что и нужно было


Но поскольку ты так и не разобрался в "проблеме", то когда-нибудь при возвращении по какому-либо иному поводу к использованию этого компонента ты получишь теми же граблями по тому же месту)



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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
3-1178991672
TheEd
2007-05-12 21:41
2007.09.09
Как получить Description для полей (IB7.0, D7, FIBPlus)?


2-1187346621
preved
2007-08-17 14:30
2007.09.09
Винчестеры


2-1187100069
neodream
2007-08-14 18:01
2007.09.09
Автозаполнение в TEdit


15-1186626194
Slider007
2007-08-09 06:23
2007.09.09
С днем рождения ! 9 августа 2007 четверг


15-1186354511
lookin
2007-08-06 02:55
2007.09.09
За что уважаю ДДТ...