Страницы

Поиск по вопросам

пятница, 7 июня 2019 г.

Android и NIST Internet Time Servers

Подскажите кто знает в чем может быть проблема? Есть код: InetAddress address1 = InetAddress.getByName("nist.netservicesgroup.com"); int server_port = 123; socket = new DatagramSocket(); byte[] buf = new byte[1024]; socket.setSoTimeout(10000); DatagramPacket packet = new DatagramPacket(buf, buf.length, address1, server_port); socket.send(packet);
DatagramPacket packet2 = new DatagramPacket(buf, buf.length); socket.receive(packet2); Отправляет на сервер nist.netservicesgroup.com порт 123 запрос. После чего ждет ответ 10 сек. Стоит permission android.permission.INTERNET. Ответ не приходит. Ставил разные порты (13, 37 и 123). Менял разные адреса (список тут http://tf.nist.gov/tf-cgi/servers.cgi) Куда, что засунуть и откуда что высунуть чтобы заработало? Заранее спасибо за полезные ответы.


Ответ

К сожалению, я не сталкивался с сокетами в андроиде и не работал с NIST. Из своего опыта с WinSock и сокетами на юникс-системах могу предложить использовать пятизначные порты, а также попробуйте настроить работу через стандартные способы, например через протокол tcp (т.к если назначения не существует, то сообщение просто не уйдет). Также проверьте доступность портов с другой стороны. У меня часто бывало, что сервер был выключен или работал на другом сокете. Незаменимым помощником будет браузер+ping+telnet (последнее я не использовал, но в различной литературе упоминается постоянно).

Комментариев нет:

Отправить комментарий