Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
story.gif
Создание многопользовательских приложений на базе сокетов
 
Интернет

Эта статья расскажет о сокетах и о принципах работы с ними. Из нее Вы узнаете, как создаются чаты реального времени.

Работая в сети 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-адрес. После этого нажмите на каждом клиенте кнопку  «Подключение». Теперь клиенты могут обмениваться между собой сообщениями.

Как видите, все не так уж и сложно. Используя мои предыдущие статьи, Вы сможете расширить функциональность созданного нами чата и добавить в него функции обмена файлами. Я надеюсь, что эта статья помогла Вам познакомиться с сокетами и принципами их работы.

 
Разместил 26/01/2004 от rolcom ( Прочитано: )

  blocks.gif
Связанные ссылки
 

· Больше про Интернет
· Новость от rolcom


Самая читаемая статья: Интернет:
Создание многопользовательских приложений на базе сокетов

 
blocks.gif
Рейтинг статьи
 

Средняя оценка: 4.55
Ответов: 20


Пожалуйста, проголосуйте за эту статью:

Отлично
Очень хорошо
Хорошо
Нормально
Плохо


 
blocks.gif
опции
 


 Напечатать текущую страницу  Напечатать текущую страницу

 Отправить статью другу  Отправить статью другу

 

 
 
Re: Создание многопользовательских приложений на базе сокетов (Всего: 0)
от Гость на 27/03/2004

Ruless, здорово, круто.

Я здесь нашел все что я хотел.

(от КОМа)



 
 


 
 
Re: Создание многопользовательских приложений на базе сокетов (Всего: 0)
от Гость на 19/04/2004
Старовата статья, а в Delphi 7 слабо, тем более, она полностью списана с книги Delphi 6 для Профессионалов...хе хе...


 
 

 

Page generation 0.043 seconds