-
Делаю так:
SNTPSocket := TClientSocket.Create(Self);
SNTPSocket.Host := 'ntps1-0.cs.tu-berlin.de';
SNTPSocket.Port := 123;
SNTPSocket.Active := True;
Выходит ошибка:
Connection error; Error code 10061
Что не так делаю?
P.S. Адрес 'ntps1-0.cs.tu-berlin.de' опробованный - работает.
-
> Что не так делаю?
Не тот компонент используешь.
Следует использовать UDP-based-компоненты.
-
Еще раз большое спасибо Сергею М. за отличные советы!!!
-
Сейчас использую компонент UdpSocket.
На событие OnConnect пишу:
Memo1.Lines.Add('Server of connected : ' + UDPSocket1.RemoteHost);
UDPSocket1.SendBuf(NTPDataGram, SizeOf(NTPDataGram));
где NPTDataGram - заполненная структура для получения данных времени (заполнена правильно, проверял на Indy-компоненте).
Но событие OnReceive - не происходит :(
-
> событие OnReceive - не происходит
События не "приходят", они происходят.
Событие OnReceive может произойти только как следствие вызова receive-метода.
-
То Сергей М. : Может я что-то ни так понимаю? Я делал телнет на основе TClientSocket. Там, когда приходили данные, происходило событие ClientOnRead.
Я так думал, что посылая SendBuf необходимо в событии OnReceive прописать действие, которое произойдет, когда появятся данные для приема. Или что-то не так?
-
> Или что-то не так?
TClientSocket - это не TTCPClient и тем более не TUDPSocket.
Принципиальное отличие - ни TTCPClient ни TUDPSocket не предназначены для работы в режиме асинхронных нотификаций о событиях транспорта.