Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

Mailslotный чат   Найти похожие ветки 

 
dimodim   (2006-04-02 23:07) [0]

Как реализоваь сабж.Есть чат Ичат , написанный на Делфи 6, но он устарел (Смайлы,мало функций и пр).Так как технологии развиваются , а чат 2001 года , то хотелось бы самому написать что-то аналогичное  и мэилслотное.
Как я понял это можно реализовать с помощью сокетов .
Писать буду на Делфи 5 или Делфи 8


 
Eraser ©   (2006-04-02 23:27) [1]


> dimodim   (02.04.06 23:07)

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


 
Rouse_ ©   (2006-04-03 09:58) [2]

Какие именно развившиеся технологии ты хочешь добавить в чат?


 
dimodim   (2006-04-03 16:54) [3]

Rouse
Начнем со смайлов (которых там мало) , заканчивая аватарами для пользователей
--
Люди напиште алгоритм или объяснте как это можно организовать с помощью ClientSocket.


 
Belorus ©   (2006-04-03 17:45) [4]

Итак начнём

Ичатом я пользуюсь около 4 лет.
Сейчас стоит 1.20 и IchatAdmin.
В ичате 1.20 кажется 16 смайлов вполне прилично.

Но...

Я за всю жизнь не видел не одного реально удобного чата с передачей
1. Текста
2. Файлов
3. Голоса(реалтайм)
4. Видео(реалтайм)
5. С поддержкой плугинов.

И не так давно стал писать свой чат. К сожалению с Мэйлслотами не разобрался и стал делать на основе выделеного сервера. То есть на одой машине запущено сервер приложение.

Если разберусь - расскажу, если нет то рад буду получить сам эту инфу...

А вообще давай писАть вместе :-)
ICQ 262-772-766


 
Rouse_ ©   (2006-04-03 20:57) [5]


> Начнем со смайлов (которых там мало) , заканчивая аватарами
> для пользователей

Ужас, технология за пять лет развилась до смайлов с аватарами :)
Едем к "начинающим"...


 
dimodim   (2006-04-03 21:27) [6]

А зря ты меня к начинающим приписал вопрос довольно актуальный
-------------


> Belorus ©   (03.04.06 17:45) [4]

> И не так давно стал писать свой чат. К сожалению с Мэйлслотами
> не разобрался и стал делать на основе выделеного сервера.
>  То есть на одой машине запущено сервер приложение.
Ты знеш с сервером легко . а с мэил слотами трудне.
Я дуаю что мэилслоты можно эмулировать запуская как ClientSocket tak i ServerSocket


 
dimodim   (2006-04-03 21:31) [7]

{[S foruma v nete mne bi xotelos uznat kak peredat paket]]]

Имя MailSlot"a: ichat047, формат аналогичен нижеприведенному.

Далее, перейдем в формату тела сообщения (после расшифровки)

[~] "ichat" [~~] [Счетчик ASCII] [~~] [Отправитель] [~~] [CMD] [~~] [параметры команды]

[Счетчик ASCII] - счетчик сообщений, начиная с 1, увеличивается на 1 с каждым сообщением
[Отправитель] - сигнатура отправителя (аналогично - см. выше)
[~~] - разделитель, два байта - 0x13 0x13
[CMD] - команда, см. ниже

Ниже приведены используемые iChat команды:

Имя линии для общего чата - iTCniaM

DISCONNECT - покинуть линию (или общий чат)
[Имя линии] [~]

CONNECT - войти в линию (общий чат)
[Имя линии] [~~] [Логин] [~~] [Ник] [~~] [~~] [Away_сообщение] [~~]
[Получатель | "*"] [~~] [Версия] [~~] [Статус] [~]

CREATE_LINE - создание линии
[Имя линии] [~~] [Пароль] [~~] [Отправитель] [~]

REFRESH - обновить информацию в списке пользователей, посылается с периодичностью ок. 1 мин
[Имя линии | "*"] [~~] [Логин] [~~] [Ник] [~~] [~~] [Away_сообщение] [~~] [Получатель | "*"] [~~] [Версия] [~~] [Статус] [~]

STATUS_REQ - запрос статуса у конкретного чела
[~]

STATUS - выдать статус
[Статус] [~~] [Away_сообщение] [~]

BOARD - обновить сообщение в доске объявлений
[Номер куска] [~~] [Текст сообщения] [~]

TEXT - паблик сообщение
[Линия] [~~] [Текст] [~~] [Получатель | "*" | ""] [~]

ME - /me сообщение
[Линия] [~~] [Текст] [~~] [Получатель | "*"] [~]

TEXT - приватное сообщение, отправляет себе и получателю...
["gsMTCI"] [~~] [Текст] [~~] [Ник отправителя] [~]

RECIEVED - подтверждение о получении сообщения
["gsMTCI"] [~~] [Текст подтверждения] [~]

Теперь самое интересное - ШИФРОВАНИЕ ;) Чат использует алгоритм шифрования RC4 с паролем "tahci". Для тех, кому это мало что говорит, ниже приведена процедура кодирования/декодирования (алгоритм обратимый - то есть, для кодирования и декодирования используется одна процедура), реализующая этот алгоритм (на Delphi):

var str,str_dec:array[0..MAX_MSG_SIZE-1] of byte;
{str,str_dec - массивы в которых лежат сообщения (кодированное и декодированное соответсвенно)}

procedure DecodeMessage(leng:integer);
//leng - длина закодированного пакета
const s:string="tahci"; //ключ
var i,j,sw:byte;
   KeyLen,k:word;
   fs:array [0..255] of byte;
begin
{$R-}
KeyLen:=Length(s);
j:=0;
for i:=0 to 255 do fs[i]:=i;
for i:=0 to 255 do
 begin
  j:=j+fs[i]+byte(s[(i mod KeyLen)+1]);
  sw:=fs[i];
  fs[i]:=fs[j];
  fs[j]:=sw;
 end;
i:=0;
j:=0;
for k:=0 to (leng-1) do
 begin
  i:=i+1;
  j:=j+fs[i];
  sw:=fs[i];
  fs[i]:=fs[j];
  fs[j]:=sw;
  sw:=fs[i]+fs[j];
  str_dec[k]:=fs[sw] xor str[k];
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
15-1143366721
inri13666
2006-03-26 13:52
2006.04.16
Как добовлять новые компоненты в BDS2006


1-1141859568
Кашперук Иван
2006-03-09 02:12
2006.04.16
Запуск приложения при завершении работы Windows


2-1144161191
[peoep1
2006-04-04 18:33
2006.04.16
где скачать Delphi


15-1143551972
oldman
2006-03-28 17:19
2006.04.16
Для любителей группы "Черный кофе" (старой, годика 1987....)


9-1128065747
Signate
2005-09-30 11:35
2006.04.16
Ширина строки