м'я юзера} Copy (s, 1,2)= # N then begin
{Надсилаємо відповідь}. SendText ( # N + nickname) ;;;
{Якщо нам прислали приватне повідомлення (або не нам :))} Copy (s, 1,2)= # P then begin (s, 1,2);
{Виділяємо в to_ - кому воно призначене} _:=Copy (s, 1, Pos ( laquo ;; , s) - 1); (s, 1, Pos ( laquo ;; , s));
{Виділяємо в from_ - ким відправлено} _:=Copy (s, 1, Pos ( laquo ;; , s) - 1); (s, 1, Pos ( laquo ;; raquo ;, s));
{Якщо воно для нас, або написано нами - додаємо в Memo1
(іноді корисно прибрати цей оператор if :))} (to_=nickname) or (from_=nickname) then. Lines. Insert (0, from _ + (private) gt; + s) ;. SelStart:=0 ;. SelLength:=RichEdit1. Lines [1]. Length ;. selAttributes. Color:=clred ;;;; Copy (s, 1,2)= # D then begin (s, 1,2); s=nickname then begin. Click; ( Ви відключені Адміністратором ) ;;;; Copy (s, 1,2)= # A then begin (s, 1,2); copy (s, 1, pos ( laquo ;; , s) - 1)=NickName then begin (s, 1, pos ( laquo ;; , s)); ( Адміністратор: - + S) ;;;;;;
//Отримання файлу
var s, s1: string ;: Integer ;: Integer ;: Pointer ;:=Socket. ReceiveLength; (Bfr, iLen) ;. ReceiveBuf (Bfr ^, iLen) ;. Write (Bfr ^, iLen); (Bfr) ;;;
//Відправка повідомлення
var s: string; (CheckBox1. Checked) and (ListBox1. ItemIndex lt; 0) then begin ( Щоб послати приватне сообшеніе, спочатку виберіть одержувача! ) ;;;
{Якщо це приватне повідомлення} CheckBox1. Checked=true then:= # P + ListBox1. Items [ListBox1. ItemIndex] + laquo ;; {додаємо спец. команду і адресат} {А якщо не дуже приватне? }:= Laquo; # M raquo ;; {Просто спец. команду}
{Додаємо наше ім'я (від кого) і саме повідомлення}:=s + nickname + laquo ;; + Edit1. Text;
{Надсилаємо все це добро по сокету}. Socket. SendText (s);
{І знову чекаємо введення у вже чистому TEdit-е}. Text:= raquo ;;:=Edit1 ;;
//Відправлення файлу
begin. Free ;. Execute ;. Socket. SendText ( # F + ExtractFileName (opendialog1. FileName)) ;. Socket. SendStream (TFileStream. Create (opendialog1. FileName, fmOpenReadWrite or fmShareDenyWrite)) ;. Socket. SendText ( # S + ExtractFileName (opendialog1. FileName)) ;. Free;
2.5 Порядок роботи з програмою
2.5.1 Робота з сервером.
Малюнок 1 - Налаштування сервера
Малюнок 1 - Налаштування сервера. Головним налаштуванням є поле Порт за замовчуванням стоїть порт 1010 raquo ;. Сервер можна запустити натиснувши на кнопку Запуск raquo ;, якщо порт вільний і немає більше ніяких проблем то в рядку стану відобразиться напис Сервер запушений raquo ;, тепер клієнти можуть підключатися до сервера. Відключення сервера відбувається натисканням кнопкою Відключити raquo ;. Є можливість згорнути сервер в трей, натисканням кнопки Згорнути в трей .
Малюнок 2 - Лог чату
Малюнок 2 - Лог чату. Це історія сервера, в ній ведуться записи про підключенні і відключенні користувачів, часу запуску і відключенні сервера. Кнопка Зберегти raquo ;, зберігає історію в обраний текстовий файл. Кнопка Очистити raquo ;, очищає історію.
Малюнок 3 - Користувачі. Ця закладка зі списком підключених клієнтів.
Кнопки:
· Відключити - відключає обраного користувача від сервера.
· Повідомлення - посилає обраному користувачу повідомлення від адміністратора сервера.
Малюнок 3 - Користувачі
Змінити нік - змінює ім'я клієнта в чаті на нове введене адміністратором.
2.5.2 Робота з клієнтом
Малюнок №4 - Закладка Чат raquo ;. Закладка на якій і відбувається листування між клієнтами. Для того щоб відіслати повідомлення потрібно написати текст в поле з написом Текст повідомлення і натиснути кнопку Send raquo ;. У тому випадку якщо потрібно надіслати повідомлення лише одному клієнтові потрібно поставити галочку ПРИВАТНЕ і вибрати одержувача зі списку.
Для того щоб послати файл потрібно натиснути кнопку ... raquo ;, файл буде розісланий всім клієнтам незалежно від приватності.
Малюнок 4 - Чат
Малюнок 5 - Підключення та Установки. Як видно з назви в цій закладці відбувається підключення до сервера і настройка кліє...