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

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

Помогите Мазуту!


Страницы:   1 2

Мазут Береговой ©   (2002-11-01 07:16:00) 

Здрасте.
Кто знает, почему не принимаются данные и не срабатывает событие?
Ход мыслей такой:
type TSocketNotifyEvent = procedure (Sender: TObject; Socket: TCustomWinSocket) of object;
type
TDNS = class(TComponent)
...........................

procedure TDNS.SendQuery;
var Buff : TABuffer;
Len : integer;
Socket : TCustomWinSocket;
begin
...................................
Sk:= TClientSocket.Create(Self);
Sk.Host := ....;
Sk.Port :=....;
Sk.ClientType := ctBlocking;
try
If not Sk.Active then Sk.Active := true;
While not Sk.Active do Application.ProcessMessages;
Sk.Socket.SendBuf(DNSBuffer,Len);

До этого места все отрабатывает.
А ниже все отказывает.

If Assigned(OnReadBuf)
then OnReadBuf(Self,Socket);
Len:=Sk.Socket.ReceiveLength;
Sk.Socket.ReceiveBuf(Buff,Len);
.......................
finally
Sk.Destroy;
end;
end;


ПОмогите, пожалуйста!


Мазут Береговой   (2002-11-01 10:17:00) [21]

И еще, если бы соединение не устанавливалось на Sr.Active, то вся эта штука зацикливалась бы на while в ожидании соединения...
Если есть есть еще средства проверить результат SendBuf, то подскажи.


Мазут Береговой   (2002-11-01 10:04:00) [22]

До этого написал код как прогу. И эти два события обрабатывались на отдельных процедурах TButtonClick и OnDataReceived. А кроме того я иду в отладчике по шагам и дохожу до SendBuffer и внизу на таскбаре вижу что взаимодействуют мой client и DNS сервер. Да и ошибок до этого не вылетает, а вот после того как пытаюсь сделать ReceiveBuffer отладчик дает ошибку Remote host forcibly closed connection. Вот такая уверенность...


Digitman   (2002-11-01 08:50:00) [23]


> Sk.Socket.SendBuf(DNSBuffer,Len);
>
> До этого места все отрабатывает.


С чего это такая уверенность ?
Где анализ результата SendBuf() ?


Страницы:   1 2

Наверх

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