ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Создание клиент-серверных приложений с примерами на языке php. Клиент-сокеты.Статья 1
  #1  
Старый 04.11.2007, 12:40
rap-kasta
Новичок
Регистрация: 03.11.2007
Сообщений: 6
Провел на форуме:
3398

Репутация: 13
По умолчанию Создание клиент-серверных приложений с примерами на языке php. Клиент-сокеты.Статья 1

Создание клиент-серверных приложений с примерами на языке php.
Часть #1. Клиент-сокеты.
Статья #1.


+Отсебятина (слово от автора)
Целью данных статей является разложение «по-полочкам» идей и реализации клиент-серверных приложений с примерами на языке php. Эта статья, прежде всего адресована новичкам.
Собственно, почему я решил её написать: в своё время самому было сложно разобраться в этой проблеме и, тем более, найти полезную информацию. Собственно пробел в этой информации я и постараюсь заполнить.

+Запуск шатла…(Введение в тему)
Для начала я проясню, что такое клиет-серверные предложения и для чего вам может пригодиться эта статья.
Клиент-серверные приложения-это, грубо говоря, 2 программы: одна-клиент, другая-сервер, причём они могут меняться местами. Рассмотрим отношение клиент-сервер на нескольких упрощённых примерах:
1)Вы набираете в браузере адрес http://microsoft.com и что происходит? Сначала браузер отсылает запрос вашему провайдеру, после чего провайдер отсылает копию этого запроса серверу microsoft.com, который возвращает ответ. Ответ проходит через провайдера и доходит до браузера, который его и обрабатывает.
Выглядит это следующим образом:

Браузер (клиент)->провайдер(сервер, клиент)->Microsoft.com(сервер)
Microsoft.com(сервер)-> ваш провайдер(сервер, клиент)-> Браузер (клиент)

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

2)Вы общаетесь в icq, отправляете сообщение на номер 111111(ваш номер-222222).
Итак, ваш icq-клиент отправляет запрос серверу icq (который, как и в предыдущем примере, проходит через провайдера), который передаёт его вашему собеседнику и получает данные о том, принял ли пользователь сообщение.
Icq[222222] (клиент)->провайдер (сервер, клиент)->ICQ[сервер](сервер)->icq[111111] (клиент)

Как мы видим, здесь у нас уже 2 сервера и 2 клиента

3)Спам рассылка 
Итак, вы спамер  Вы, собрав базу для спама, отправляете сообщения через ОДИН SMTP сервер какого-то идиотского буржуйного фри-хостинга :

1)Вы(клиент)->SMTP сервер[HELO,авторизация, сообщение] (сервер)
*Эти действия проходят ровно столько раз сколько мессаг
2)Юзер(клиент)-> провайдер (сервер, клиент)->POP3/IMAP/ну или другой сервер[авторизация, запрос количества сообщений, приём сообщений] (сервер)

Эти действия проходят ровно столько раз сколько мессаг на сервере:
Юзер[запрос сообщения] (клиент)-> провайдер (сервер, клиент)->POP3/IMAP/ну или другой сервер [сообщение] (сервер) ->провайдер юзера (сервер, клиент)->юзер(клиент)
По всем примерам хочу заметить, что и сервер общается через провайдера, провайдер(скорее всего) имеет несколько сервером ну и тд.…
Итак, надеюсь по примерам вы поняли что такое сервер и что такое клиент, если не поняли, то объясню коротко: клиент-это тот кому нужна информция, сервер-это тот кто её даёт. Андерстенд?  Ну поехали дальше….

+Шатл забыли заправить бензином(продолжение введения в тему)
Итак, в этой первой статье я начну разговор о клиентских приложениях. Что это может быть? Например, браузер, icq-клиент, грабер новостей ФК «Динамо», банальный спамер и… в общем всего не пересчитать.
Ну что ж, я желаю вам успехов, приступим к изучению этой интересной темы.

+Неужели полетели? (разбор клиент-сокетных функций php)
В языке php не так-то много клиент-сокетных функций, но все они способны удовлетворить любые нужды.

1)Fsockopen($server,$port,$errno,$errstr,$timeout).
Эта функция, подобно fopen(), возвращает дескриптор сессии. Теперь рассмотрим каждый параметр отдельно:
$server-сервер, к которому следует подключиться
$port-порт, к которому следует подключиться
$errno-переменная, в которую будут сохраняться числовые идентификаторы ошибок
$errstr-переменная, в которую будут сохраняться описания ошибок
$timeout-время в секундах, за которое сервер должен подключиться, если не будет укладываться во время, то возвратит ошибку.

Данная функция выполняет подключение к серверу, например код:
PHP код:
<?php
$connect
=@fsockopen(“yandex.ru”,80,$errno,$errstr,30);
?>
Попытается за 30 секунд подключиться к серверу yandex.ru на 80 порту (к веб-серверу yandex’а) и, если всё пройдёт успешно запишет в $connect идентификатор сессии с сервером.
2)fputs($connect,$what);
С этой функцией вы уже должны быть знакомы по работе с файлами, тут же ситуация такая же: эта функция передаёт данные $what серверу, к которому был подключен дескриптор $connect.
3)fgets($connect,[длина строки])
Эта функция принимает ответ от сервера, к которому вы подключились.
Второй параметр, указывающий на то, какой максимальной длины может быть строка, не обязателен.
4)fclose($connect);
Эта функция вам тоже знакома: она «отсоединяет» вас от сервера, указанного в дескрипторе $connect.

Таким образом, подключившись к серверу можно с ним общаться как с файлом с одной лишь разницей – общение сервера и клиента можно считать двусторонним, а общение с файлом - односторонним.

В следующей статье мы рассмотрим применение полученных данных на практике - в работе с http и smtp серверами.

Все комментарии принимаются и обязательно повлияют на новую статью. Удачи.

[rap-kasta]
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Обзор современных Web технологий baltazar Статьи 1 30.10.2007 02:29
Создание Exe приложений на Php. Mo4x Чужие Статьи 20 10.06.2007 20:01
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ