Новые книги

Вы занимаетесь продажами? Тогда вам наверняка знакомо чувство отчаяния из-за непредсказуемого поведения ваших клиентов или ваших собственных действий, оказавшихся ошибочными. Хотя вы, казалось бы, все просчитали.

Дэвид Сэндлер начал карьеру в отделе продаж, будучи разорившимся бизнесменом. Спустя некоторое время он ушел, чтобы… открыть собственную компанию по обучению технике продаж. Очень скоро Сэндлер приобрел широкую известность, а 49 неочевидных, провокационных, но действенных «правил Сэндлера» вошли в арсенал многих успешных продавцов.

Книга адресована всем, кто продает – товары, услуги, мысли, идеи. Постоянно или время от времени.
Эта книга – последовательная и подробная инструкция по интернет-маркетингу. В ней Федор Вирин, директор по исследованиям портала Mail.Ru, собрал собственный богатый практический опыт продвижения товаров и услуг в Интернете, а также опыт ведущих российских компаний. Впервые в одной книге объединены и систематизированы такие отдельно существующие и развивающиеся части интернет-маркетинга, как контекстная реклама, таргетинг, веб-аналитика, медиапланирование в Интернете, поисковый маркетинг, вирусная реклама и другие.

Выполняя приведенные в книге задания, вы научитесь анализировать и эффективно использовать возможности интернет-маркетинга. Полученные знания вы сможете начинать использовать сразу после прочтения, вне зависимости от текущего состоянии дел в вашей компании.

Книга предназначена для обучающихся интернет-маркетингу, руководителей интернет-проектов, будет полезна специалистам в отдельных областях интернет-маркетинга.

Передача данных с использованием сокетов

Передача данных с использованием сокетов

Оглавление

Сетевые приложения
Адрес IP
Адрес URL
Класс URL
Сокеты
Потоковые сокеты
Класс Socket
Датаграммные сокеты
Связь с Web
Аплет ShowChart
Приложения SocketServ и SocketClient
Аплет Form

В библиотеке классов Java есть очень удобное средство, с помощью которых можно организовать взаимодействие между приложениями Java и аплетами, работающими как на одном и том же, так и на разных узлах сети TCP/IP. Это средство, родившееся в мире операционной системы UNIX, - так называемые сокеты (sockets).

Что такое сокеты?

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

Прежде чем приложение сможет выполнять передачу аили прием данных, оно должно создать сокет, указав при этом адрес узла IP, номер порта, через который будут передаваться данные, и тип сокета.

С адресом узла IP вы уже сталкивались. Номер порта служит для идентификации приложения. Заметим, что существуют так называемые "хорошо известные" (well known) номера портов, зарезервированные для различных приложений. Например, порт с номером 80 зарезервирован для использования серверами Web при обмене данными через протокол HTTP.

Что же касается типов сокетов, то их два - потоковые и датаграммные.

С помощью потоковых сокетов вы можете создавать каналы передачи данных между двумя приложениями Java в виде потоков, которые мы уже рассматривали во второй главе. Потоки могут быть входными или выходными, обычными или форматированными, с использованием или без использования буферизации. Скоро вы убедитесь, что организовать обмен данными между приложениями Java с использованием потоковых сокетов не труднее, чем работать через потоки с обычными файлами.

Заметим, что потоковые сокеты позволяют передавать данные только между двумя приложениями, так как они предполагают создание канала между этими приложениями. Однако иногда нужно обеспечить взаимодействие нескольких клиентских приложений с одним серверным или нескольких клиентских приложений с несколькими серверными приложениями. В этом случае вы можете либо создавать в серверном приложении отдельные задачи и отдельные каналы для каждого клиентского приложения, либо воспользоваться датаграммными сокетами. Последние позволяют передавать данные сразу всем узлам сети, хотя такая возможность редко используется и часто блокируется администраторами сети.

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

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

Причина отстутствия гарантии доставки данных при использовании датаграммных сокетов заключается в использовании такими сокетами протокола UDP, который, в свою очередь, основан на протоколе с негарантированной доставкой IP. Потоковые сокеты работают через протокол гарантированной доставки TCP.