Здравствуйте, гость ( Вход | Регистрация )
Профиль
Фотография
Рейтинг
Опции
О себе
GrUm не указал(а) ничего о себе.
Личная информация
GrUm
Новичок
Возраст не указан
Пол не указан
Место жительства не указано
День рождения не указан
Интересы
Нет данных
Статистика
Регистрация: 9.4.2016
Просмотров профиля: 44724*
Последнее посещение: 13.4.2016, 10:50
Часовой пояс: 14.10.2024, 12:36
2 сообщений (0 за день)
Контактная информация
Нет данных
Нет данных
Нет данных
Нет данных
скрыто
* Просмотры профиля обновляются каждый час
|
Темы
Сообщения
Комментарии
Друзья
Содержимое
9 апр 2016
Пишу приложение на C#, обращающееся на ваш сервер времени.
Использую вот такой код Код // NTP message size - 16 bytes of the digest (RFC 2030) var ntpData = new byte[48]; //Setting the Leap Indicator, Version Number and Mode values ntpData[0] = 0x1B; //LI = 0 (no warning), VN = 3 (IPv4 only), Mode = 3 (Client Mode) var addresses = Dns.GetHostEntry(ntpServer).AddressList; //The UDP port number assigned to NTP is 123 var ipEndPoint = new IPEndPoint(addresses[0], 123); //NTP uses UDP var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); socket.Connect(ipEndPoint); //Stops code hang if NTP is blocked socket.ReceiveTimeout = 3000; socket.Send(ntpData); socket.Receive(ntpData); Практически все описанные в сети варианты ntp на c# используют такой алгоритм. При отправке пакетов по UDP, постоянно получаю time out. Сервер времени майкрософта (time.windows.com) отвечает на этот запрос, но тоже далеко не всегда. Перебрал все местные сервера, результат одинаковый. При запросе из моей подсети почти никогда не получаю корректный ответ. Из другой - через раз. При этом стандартная утилита сверки времени Windows работает корректно с вашими серверами. Что я делаю не так? |
Просмотры
GrUm профиль не имеет просмотров.
Комментарии
Другие пользователи не оставили комментарии для GrUm.
Друзья
Друзей нет.
|
Текстовая версия | Сейчас: 14.10.2024, 12:36 |