У даній статті я розповім, як написати простий чат структури Head-to-Head, тобто з'єднання клієнт-сервер з одним каналом зв'язку.
Спершу створимо сервер. Створюємо новий проект, Caption форми міняємо на "Server". Додаємо на форму TSpinEdit (знаходиться на вкладці "Samples", його краще розмістити де-небудь вгорі. Буде служити для вказування порту для конекту клієнта), TServerSocket (на вкладці "Internet", якщо цього компонента там не видно - вибираємо Component -> Install packages, тиснемо кнопку Add і вибираємо в діалозі в директорії bin файл dclsockets70.bpl, і натискаємо Ok. Компоненти TClientSocket і TServerSocket повинні з'явитися на вкладці "Internet"), TMemo (в ньому будуть відображатися повідомлення, 2 TButton'а (один створюватиме сервер, інший - розривати зв'язок) і TEdit для відправки повідомлень. Встановіть ServerType в StNonBlocking у TServerSocket 'А.
Змінюємо першому TButton'у Caption на "Активувати серв.". Пишемо цій кнопці в обробник OnClick:
Оброблювач OnClick для кнопки, що розриває коннект:
Тепер пишемо обробник для TEdit'a OnKeyPress
Відправлення повідомлень зробили, тепер потрібно організувати їх прийом. Для цього пишемо обробник OnClientRead у TServerSocket'а.
Тепер створимо реакцію на відключення клієнта
На цьому закінчимо створення сервера. Збережіть проект і створіть новий.
Тепер пишемо обробник OnKeyPress для Edit2:
Тепер організуємо прийом повідомлень. Для цього пишемо обробник у ClientSocket-а OnRead: