Меню сайта
wmode="transparent" type="application/x-shockwave-flash">
Мини-чат
Наш опрос
Оцените мой сайт
Всего ответов: 9
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Декабрь 2010  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Вконтакте
  • Четверг, 02.05.2024, 02:01
    Приветствую Вас Гость | RSS
    Главная | Регистрация | Вход
    Мой сайт
    Главная » 2010 » Декабрь » 17 » Создание чата
    17:24
    Создание чата

    Работая в сети Internet, мы очень часто встречаемся с разного рода многопользовательскими программами. Ими могут быть почтовые клиенты, чаты, форумы, FTP клиенты и т.п. Все эти приложения используют для своей работы разного рода протокола: FTP, POP, SMTP, HTTP, и т.д. Но базовым для них является единый протокол - TCP/IP.

    Типичное же приложение TCP/IP построено на клиент-серверной архитектуре. Примером приложения построенного на данной архитектуре, является чат реального времени. В этой статье мы попытаемся создать чат средствами Borland Delphi. Для этой цели нам необходимы компоненты TClientSocket и TServerSocket (рис. 1). Выбранные нами компоненты при работе с протоколом TCP/IP используют интерфейс сокетов. Но прежде чем перейти к разработке чата, разберем, что же такое сокеты.





    (Рис. 1) Расположение компонентов TClienSocket и TServerSocket



    Сокеты – это интерфейс прикладного программирования для сетевых приложений TCP/IP. Интерфейс сокетов был создан в восьмидесятых годах для операционной системы UNIX. Позднее интерфейс сокетов был перенесен в Microsoft Windows. Сокеты до сих пор используются в приложениях для сетей TCP/IP. В переводе с английского "sockets" – гнезда, т.е. сетевые приложения используют сокеты, как виртуальные разъемы для обмена данными между собой. Сокеты бывают трех видов: клиентские, слушающие и серверные.

    Клиентские сокеты устанавливают связь с сервером и обмениваются с ним данными. Клиентский сокет включен в компонент TClientSocket. Слушающий сокет принимает запрос на соединение от клиентского сокета, и соединяет сервер с клиентом. Слушающий сокет содержится в компоненте TServerSocket. Серверный сокет обменивается данными с клиентом по уже установленному (слушающим сокетом) соединению.

    Теперь вернемся к компонентам TClientSocket и TServerSocket. Для того чтобы клиент мог установить соединение с сервером, ему необходимо указать его адрес (IP) и номер порта, через который будет происходить обмен данными.

    Перейдем к примеру. У нас будет два приложения: сервер и клиент. Чат будет работать по принципу - один сервер и множество клиентов. Клиент будет посылать сообщение на сервер, а сервер будет рассылать это сообщение другим клиентам, т.е. клиенты будут обмениваться сообщения между собой через сервер. Для написания чата, мы создадим два проекта: сервер и клиент.
    Создание сервера

    Создайте форму и добавьте на нее компоненты, показаные на рис.2.





    (Рис 2) Сервер

    В процедуре FormCreate задается значение порта, через который будет происходить обмен данными. Затем TServerSocket начинает свою работу. В обработчике кнопки «Выход» происходит отключение сервера. При завершении работы программы, очень важно отключать TServerSocket и закрывать соединение. Далее в обработчике события OnClienRead, компонента TServerSocket происходит обработка данных полученных от клиента. Событие OnClienRead генерируется при получении данных от клиента. Это все, что нужно учитывать при разработке клиента. Откомпилируйте созданное нами приложение.



    Создание клиента
    Создайте форму и добавьте на нее компоненты, показанные на рисунке 3.



    (Рис. 3) Клиент



    Из листинга видно, что при нажатии на кнопку «Подключение» заполняются свойства адрес и порт, компонента TClientSocket. Затем происходит подключение. В процедуре ClientSocket1Read сообщение, полученное от сервера, добавляется в ListBox1. И самое главное – это обработчик кнопки «Послать сообщение». В этой процедуре сообщение проверяется и отправляется на сервер. При этом вызывается метод ClientSocket1.Socket.SendText. Остальные процедуры очень просты. Клиент готов к работе. Откомпилируйте его.



    Теперь, когда и сервер и клиент готовы, запустите сервер. Затем запустите несколько экземпляров клиента, введите в каждом номер порта и IP-адрес. После этого нажмите на каждом клиенте кнопку «Подключение». Теперь клиенты могут обмениваться между собой сообщениями.

    Как видите, все не так уж и сложно. Используя мои предыдущие статьи, Вы сможете расширить функциональность созданного нами чата и добавить в него функции обмена файлами. Я надеюсь, что эта статья помогла Вам познакомиться с сокетами и принципами их работы.
    Просмотров: 1033 | Добавил: PLAVEC | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Copyright MyCorp © 2024