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]
 
Ответить с цитированием

  #2  
Старый 07.11.2007, 20:36
fucker"ok
Познавший АНТИЧАТ
Регистрация: 21.11.2004
Сообщений: 1,137
Провел на форуме:
2487541

Репутация: 761


По умолчанию

Оформление хорошее, но сама статья очень маленькая (не по размеру, а по несению информации), по сути - разбор 4-х функций, про которые итак все знают из документации. Если уж тон статья задан как расжёвывательский для маленьких, то нужно писать побольше. Вот сейчас горели страсти по поводу потоков в php, тоже стоит отметить с примером реализации и тп.
 
Ответить с цитированием

  #3  
Старый 19.11.2007, 21:56
semmes
Новичок
Регистрация: 18.11.2007
Сообщений: 4
Провел на форуме:
56381

Репутация: 3
По умолчанию

а как быть если php.ini:
disable functions = fsockopen, pfsockopen, tp_connect, ftp_ssl_connect, socket_create, socket_connect, socket_bind, socket_listen, socket_write, socket_send, socket_sendto


существуют другие реализации?
 
Ответить с цитированием

  #4  
Старый 19.11.2007, 22:11
AFoST
Members of Antichat - Level 5
Регистрация: 28.05.2007
Сообщений: 729
Провел на форуме:
5571194

Репутация: 1934


Отправить сообщение для AFoST с помощью ICQ
По умолчанию

curl ещё есть.
 
Ответить с цитированием

  #5  
Старый 19.11.2007, 22:16
gibson
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме:
2872049

Репутация: 705
Отправить сообщение для gibson с помощью ICQ
По умолчанию

Цитата:
Клиент-сокеты.Статья 1
даже не могу представить что будет в следующих статьях=\ Для тех кто знает php ничего нового не подчерпнут из нее, а те кто только учат, вообщем есть более лучший и содержательный (примеры не такие примитивные).
semmes +1
 
Ответить с цитированием

  #6  
Старый 11.03.2008, 18:45
M-K
Новичок
Регистрация: 16.08.2007
Сообщений: 13
Провел на форуме:
27993

Репутация: 1
По умолчанию

А где поподробнее почитать можно?
 
Ответить с цитированием

  #7  
Старый 11.03.2008, 20:22
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

в гугле ((*

2тс как ты планируешь написать серверное приложение на РНР?
 
Ответить с цитированием

  #8  
Старый 11.03.2008, 21:02
MegaDeth
Участник форума
Регистрация: 08.11.2006
Сообщений: 208
Провел на форуме:
1038169

Репутация: 184
По умолчанию

паумничаю =)))
Цитата:
Клиент-серверные приложения-это, грубо говоря, 2 программы: одна-клиент, другая-сервер, причём они могут меняться местами.
это как "местами"?
соединение обрывается, клиентское
становиться серверным а серверное клиентским? жестоко
пойми ты серверное приложение не то которое данные только отдает, оно и принимать может. и клиентское тоже.
Цитата:
Браузер (клиент)->провайдер(сервер, клиент)->Microsoft.com(сервер)
Microsoft.com(сервер)-> ваш провайдер(сервер, клиент)-> Браузер (клиент)
чо ты с провайдером зациклился то? пакет может проскакать хз какой путь пока дойдет до серва =\
Цитата:
ваш номер-222222)
хотел бы я такой номер =)))
Цитата:
Icq[222222] (клиент)->провайдер (сервер, клиент)->ICQ[сервер](сервер)->icq[111111] (клиент)

Как мы видим, здесь у нас уже 2 сервера и 2 клиента
вообще нифига невпер. где нащитал 2 сервера? провайдер не сервер, провайдер - дословно ПОСТАВЩИК. он соединение с сервером те обеспечивает. почему тогда при приходе пакета от клиента к серверу первого собеседника он проходит прова а от серва ко второму клиента его минует
Цитата:
Итак, надеюсь по примерам вы поняли что такое сервер и что такое клиент
сам то понял?
за старание конечно плюс но ты наверно понятия не имееш о маршрутиризации сетей не в обиду.
Цитата:
Итак, вы спамер  Вы, собрав базу для спама, отправляете сообщения через ОДИН SMTP сервер какого-то идиотского буржуйного фри-хостинга :
да нидайбог. ты ыхотя бы поверхностно изучил SMTP протокол. а еще сервер ответы клиенту шлет после комманды принимаемой.
 
Ответить с цитированием

  #9  
Старый 11.03.2008, 21:16
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

да и еще по поводу ф-ции
fputs, fgets

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

относительно статьи самой.
в ней много ошибок (имхо). все таки если статья для новичков то лучше было бы если бы все нормально описалось бы. с нормальными примерами. новичкам это мало чего полезного даст (опять таки имхо)
 
Ответить с цитированием

  #10  
Старый 11.03.2008, 21:30
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Цитата:
Создание клиент-серверных приложений с примерами на языке php. Клиент-сокеты.Статья 1
Содержание не соответствует названию, кроме описания (и то неполного) некоторых функций ничего стоящего не содержит. Где примеры таких приложений?
ЗЫ Статья будет удалена, если через 3 дня не будет дополнена и отредактирована ТС по причине нулевой ценности.
Цитата:
Последнее сообщение:
Немного об аворском праве...
08.11.2007 23:30
скорее всего это не будет сделанно ТС.

Последний раз редактировалось -=lebed=-; 11.03.2008 в 21:32..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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