| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Статьи:: Delphi :: Интернет и Сети :: Создание многопользовательских приложений на базе сокетов. Чат.
Создание многопользовательских приложений на базе сокетов. Чат.
Создание многопользовательских приложений на базе сокетов.
Эта статья
расскажет о сокетах и о принципах работы с ними. Из
нее Вы узнаете, как создаются чаты реального времени.
Работая в сети
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 генерируется при получении данных от клиента. Это все, что нужно учитывать при разработке клиента. Откомпилируйте созданное нами приложение. procedure TForm1.FormCreate(Sender:
TObject);
Создание клиентаСоздайте
форму и добавьте на нее компоненты, показанные на рисунке 3.
(Рис. 3) Клиент
Из листинга видно, что при нажатии на кнопку «Подключение» заполняются свойства адрес и порт, компонента TClientSocket. Затем происходит подключение. В процедуре ClientSocket1Read сообщение, полученное от сервера, добавляется в ListBox1. И самое главное – это обработчик кнопки «Послать сообщение». В этой процедуре сообщение проверяется и отправляется на сервер. При этом вызывается метод ClientSocket1.Socket.SendText. Остальные процедуры очень просты. Клиент готов к работе. Откомпилируйте его.
procedure TForm1.Button1Click(Sender: TObject); Теперь, когда и сервер и
клиент готовы, запустите сервер. Затем запустите несколько экземпляров клиента,
введите в каждом номер порта и
IP-адрес.
После этого нажмите на каждом клиенте кнопку «Подключение». Теперь клиенты
могут обмениваться между собой сообщениями. Как видите, все не так уж и
сложно. Используя мои предыдущие статьи, Вы сможете расширить функциональность
созданного нами чата и добавить в него функции обмена файлами. Я надеюсь, что
эта статья помогла Вам познакомиться с сокетами и принципами их работы.
Автор статьи: Волков Михаил (независимый специалист по сетевому программированию) Рубрика: Интернет и Сети
HTML 5: пять вещей вызывающих особый интер....
HTML 5 — это грядущее обновление гипертекстового языка разметки, основного способа создания контента для размещения его во всемирной паутине. Разработка HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое изменилось так, что текущие спецификации HTML перестали соответствовать сегодняшним требованиям. HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и соответствовать растущим требованиям разнообразного и смешанного web-контента. HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье мы взглянем на 5 новых интересных вещей в HTML 5.
Подробнее... |
Рубрика: Html
| Добавлено: 22.12.2008
asp.net: ListView с разных сторон.
Элемент управления ListView был представлен в .Net Framework 3.5 как замена устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его предшественник, но в тоже время лишен некоторых внутренних механизмов, что впрочем целиком следствие из расширенной универсальности ListView. Среди отличий ListView и GridView можно назвать и гибкую настройку разметки, что позволяет выводить данные не только в табличном виде, но и вообще в любом каком пожелает программист. Благодаря шаблонам ItemTemplate, EditItemTemplate, InsertItemTeplate можно настроить внешний вид при любом из состояний ListView: редактировании или выборе элемента.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Создание кросс-таб отчета в Stimulsoft Rep....
Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net. Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы, но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в сфере программных продуктов для Business Intelligence.
Подробнее... |
Рубрика: .NET компоненты
| Добавлено: 22.12.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|