ICQ - ЧАТ клиент-сервер.
Принцыпы и особенности функционирования.
Плагин "3a-soft TCP client_server EX"
содержит в себе одновременно и клиент и сервер.
Он основан на ТСР движке, по верх которого
работает разработаный нами протокол обмена,
реализующий необходимые функции.
Для сервера необходимо указать порт прослушивания,
по умолчанию -1234.
Для клиента, порт который слушает сервер и его
ip адрес, по умолчанию порт 1234 ip 127.0.0.1
локальный адрес каждого ПК.
При работе в локальных сетях, используется только
локальный трафик, при работе в инет внешний.
Север располагается на машине одного из участников
сеанса, ip адрес которого доступен из интернет, он и несет на себе
всю нагрузку при обмене сообщениями, для его
работы необходимы следующие условия,
фаервол держателя сервера, должен открыть доступ
для его порта на вход и выход, правила доступа провайдера,
тоже должны допускать двусторонний обмен по нужному порту.
В связи с этим возможно будет необходимо подобрать
номер порта для сервера, провайдеры оставляют ряд
портов открытыми для ряда стандартных приложений.
Держатель сервера сообщает участникам свой ip
адрес, по которому они подключаются к нему со
своих клиентов.
Разместить сервер, для участников из локальных
сетей, с выходом в инет, возможно будет проблематично, но их
клиенты будут иметь доступ к открытому из инета серверу.
При подключении к инет, юзера с динамическим ip,
провайдер назначает ему, на время сеанса, ip адрес,
являющийся уникальным, по этому, соединение
идет не по урл а по ip.
Сервер.
Сервер работает в двух режимах,
1.точка - точка.
Работает в роли центрального узла с возможностью
ручной отправки сообщений выбраному клиенту или всем.
2 концентратор - распределитель
работает в автоматическом режиме,
без выполнения ручных операций.
Осущевствляет передачу сообщений от клиента к клиенту,
согласно указанного направления, рассылку всем,
в том числе.
Клиент.
Подключается к серверу, передает ему логин, пересылки сообщений
между клиентами происходит через сервер, имеется возможность
отправки сообщений как конкретому клиенту так и всем, подключенным к серверу, клиентам.
Клиент имеет возможность запросить у сервера список подключенных к нему клиентов
функции плагина
функции плагина | тип функции | описание |
clconect | R | подключить клиент |
cldisconect | R | отключить клиент |
kregistration | SR | зарегистрировать на сервере * старая функция |
kgetlist | R | получить список он лайн |
ksendstring | SR | передать сообщение, формат - "кому|тело сообщения", кому-имя юзера или всем - all |
ksendfile | SR | отправить файл, формат - "кому|категория|имя фала|", только c/на сервер(а),
категория- имя папки назначения (должна быть в месте получения) |
setkport | ISR | установить порт клиенту, если он подключен, отключается |
getkport | RIG | прочитать номер порта клиента |
setip | SR | установить адрес подключения клиента, если он подключен, отключается |
getip | RG | прочитать адрес клиента |
setsport | RIG | установить порт сервера, если он подключен, отключается |
serversend | SSR | передать сообщение от сервера, формат - "кому|тело сообщения", кому-имя юзера или всем - all |
serversendfile | SR | отправка сервером файла формат - "кому|категория|имя фала|", кому-имя юзера |
Рассылку файла всем, а так же пресылка от клиента к кленту через сервер, считаю не
целесообразной, что бы не перегружать сервер. Пересыка возможна от сервера к клиенту и наоборот.
Событя плагина, обратная связь,
при наступлении событий в плагине, запускается скрипт плагина,
считав строку из плагина получим описание события.
формат строки передаваемой в скрипт ммв - описание
Строка из плагина | Коментарий |
STAT#описание# | Изменен статус |
ERROR#описание# | Призошла ошибка |
TXT#сообщение# | Получено сообщение |
FIL#имя файла с путем сохранения#его размер# | При получении файла |
FIL#send file#его размер# | Подтверждение получения файла |
REG#результат# | Результат регистрации на сервере |
LST#имя1#имя2#...#имяN# | Список имен(логинов) подключенных
к серверу клиентов |
Более подробная информация во вложенном в архивы файле.
В архиве icq_sourse mbd исходники, в icq_exefile скомпилирование ехе проекты.
|