Какая быстрая URLConnection или Socket - PullRequest
4 голосов
/ 18 ноября 2011

Для получения данных с удаленного URL, какой тип соединения будет работать быстро URLConnection или Socket.

Ответы [ 5 ]

6 голосов
/ 18 ноября 2011

Оба имеют разные цели, в зависимости от ваших потребностей

Сокет может реализовывать почти дуплексную функциональность, тогда как URL-соединение может подключаться к заданному URI и считывать его содержимое.

4 голосов
/ 18 ноября 2011

Предположительно, вы имеете в виду библиотеку java "URLConnection" в сравнении или с необработанными сокетами.

Поскольку для URL-соединения используются внутренние сокеты, то логически сокеты должны быть немного быстрее, поскольку http делает все вызовы сокетов плюс некоторые издержки при обработкеполный протокол.

На практике я бы ожидал очень небольшую разницу.Если вы кодируете свой собственный интерфейс сокетов, вам нужно будет выполнить большую часть дополнительной обработки, выполняемой соединением URL, чтобы сделать соединение сокетов работоспособным и надежным.

Также была написана библиотека java "URLConnection"программистами, которые лучше, чем вы или я. Конечно, 10 лет на большинство ошибок были найдены.Так почему бы не воспользоваться этими навыками и опытом и использовать более простое URLConnection.

1 голос
/ 18 ноября 2011

Хотя это зависит от типа данных, сервера и т. Д.
Я согласен с r0ast3d.

По моему мнению, если сервер позволяет обе вещи, то я бы предпочел использовать URLConnection.
Оба посылают данные с использованием потоков, но режим ожидания в Socket немного выше, чем в URLConnection.

Пожалуйста, поправьте меня, если я ошибаюсь.

0 голосов
/ 30 ноября 2015

Неважно, какой из них быстрее, оба имеют разные цели.Сокет является конечной точкой для связи между двумя машинами и должен иметь доступ к другому протоколу.Класс URL представляет собой унифицированный указатель ресурса, указатель на «ресурс» во всемирной паутине.Ресурс может быть чем-то простым, например, файлом или каталогом, или ссылкой на более сложный объект, такой как запрос к базе данных или поисковой системе.Короче говоря, если вам нужно связаться с другим компьютером или устройством, используйте сокет и если вы хотите читать данные с сервера, используйте URLconnection.

Счастливое кодирование: D

0 голосов
/ 13 июня 2014

Из учебного пособия http://docs.oracle.com/javase/tutorial/networking/urls/connecting.html URLConnection НЕ является абстрактным и может быть воплощено

Хотелось бы увидеть некоторые тесты, по которым можно работать быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...