Posts Tagged ‘сокет’

Perl и работа с сокетами

Суббота, Август 11th, 2012 Нет комментариев

Under : , , , ,

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

Первое что нам понадобится это — сокеты (sockets). Сокет — это канал, проложенный между сервером на котором запускается программа и сервером, с которым мы хотим установить соединение. Для работы с сокетами в перле есть модуль — Socket. (далее…)

Perl и работа с сокетами

Вторник, Апрель 17th, 2012 Нет комментариев

Under : , , , ,

Иногда возникает необходимость из программы на перле соединиться с другим сервером и передать/принять какую-нибудь информацию. Как правило, возникает необходимость работать с протоколом HTTP, но поняв основные принципы взаимодействия между двумя серверами и прочитав спецификацию интересующего протокола, можно написать программу, работающую практически через любой протокол. Далее мы рассмотрим работу с протоколом HTTP. (далее…)

Создаем клиент-сервер на сокетах

Понедельник, Апрель 9th, 2012 Нет комментариев

Under : , , , , ,

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

Для начала давайте определим что такое сервер и клиент. Итак, сервер — это специальная программа, обычно запущенная на отдельном компьютере (хосте, от слова host(eng.) — хозяин), и выполняющая некий круг задач. Клиент, в свою очередь — программа, которая запрашивает сервер выполнить то или иное действие (задачу) и вернуть полученные данные клиенту. На хосте для работы сервера обычно выделяется порт (port). К этому порту и должен будет обращаться клиент. Клиент для связи с портом хоста, который соединен в свою очередь с нужным сервером (программой), создает сокет.

В целом алгоритм работы системы клиент-сервер выглядит следующим образом:

  1. Сервер подключается к порту на хосте и ждет соединения с клиентом; (далее…)

Генерация HTTP запросов

Понедельник, Апрель 9th, 2012 Нет комментариев

Under : , , , , , , , ,

В последнее время я все более часто наблюдаю в основном форуме РНРClub вопросы на тему создания POST и GET запросов, а так же вопросы на тему: «Как мне посредством функции header сформировать POST запрос». Я считаю, что уже давно назрела необходимость расставить точки над «и» в использовании данной технологии, поскольку начинающие программисты просто не понимают принципов работы веба, как такового. Итак, начнем наше путешествие по миру протокола HTTP.

1. Протокол HTTP. Введение

Сразу хочу уточнить одну маленькую вещь. Страшное слово протокол есть не что иное, как соглашение множества людей, просто в один прекрасный момент люди решили: «Давайте будем делать так, и тогда все будет в порядке». Бояться нечего, все просто до безобразия и это безобразие мы сейчас будем вскрывать. Итак, что же это такое протокол HTTP и с чем его едят? (далее…)

Скачивание бинарных файлов по HTTP

Понедельник, Апрель 9th, 2012 Нет комментариев

Under : , , , , ,

Надеюсь, все уже изучили пример отправки сообщения на ICQ, которая демонстрирует 2 вещи: работа с сокетами (послали команду, считали ответ — точно также, как читать из файла) и отправка POST запросов (генерация параметров, кодирование, вставка переменных в POST запрос).

Здесь тоже самое: открываем сокет, шлем GET форму, читаем ответ. Ответ состоит из 2х вещей: заголовок и тело документа. Т.к. название данной статьи — получение файла, то очевидно, нас наиболее волнует именно тело документа (т.е. файл), а не все, что выдаст сервер. Тело от заголовка отделено строкой «\r\n».

Чтобы применить программу, замените строку «php.spb.ru» на имя вебсервера в 2х местах. Затем замените «/files/notepad.exe» на путь к файлу… В конце программы вместо «download.tmp» укажите, куда поместить скаченный файл (и надо ли его вообще в файл записывать). (далее…)

Отправка сообщений на ICQ

Понедельник, Апрель 9th, 2012 Нет комментариев

Under : , , ,

Можно легко переделать в программу отправки сообщений на пейджер (например через page.gate.ru), SMS и другое. При умении анализировать ответ сервера, можно вырезать анекдоты c anekdot.ru или курс доллара с rbc.ru. Здесь лишь минимум для задачи:

  • сформировать запрос из разных полей
  • открыть сокет
  • записать запрос
<?php

   flush();

   // поля надо заполнить
   $from='Dmitry Borodin';

(далее…)

Использование сокетов в PHP

Понедельник, Апрель 9th, 2012 Нет комментариев

Under : , , , , ,

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

Открываем сокет

Для открываения сокета используется функция fsockopen(). Вызов функции имеет следующий вид:

int fsockopen (string hostname, int port [, int errno [, string errstr [, double timeout]]])

Для UDP соединения, надо определить протокол: udp://hostname.

Больше информации о функции fsockopen() можно узнать здесь. (далее…)