Минимальное сетевое приложение
Минимальное сетевое приложение
Минимальное сетевое приложение Класс TServerSocket Компонент TServerSocket расположен на вкладке Internet. Перенесите его на форму. Добавьте еще кнопку (по ней наш сервер начнет слушать сеть) и текстовое поле (в нем будут показываться полученные сервером от клиента данные). Начинаем задавать свойства. Для серверного сокета устанавливаем порт в 3000. Можно установить и другой - это не принципиально. Важно только, чтобы порт не оказался занятым кем-нибудь другим. Этот же номер порта мы будем использовать и на клиенте. Далее измените свойство Caption для кнопки на "Слушать" и свойство Text для текстового поля Edit1 установите в "" (пустую строку). В коде для кнопки пишем procedure TForm1.Button1Click(Sender: TObject); begin ServerSocket1.Active:=true; end; Т. е. при нажатии на кнопку сервер начинает слушать сеть на 3000 порту. Далее пишем обработчик для полученных данных. Для этого в Инспекторе Объектов выбираем из combobox'а ServerSocket1, переходим на вкладочку Events и в списке событий делаем двойной щелчок на правой части строки OnClientRead. В созданную заготовку пишем следующий код: procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Edit1.Text:=Socket.ReceiveText; end; В этом коде мы пишем полученные от клиента данные в текстовое поле. Для этого мы используем передаваемый в наш обработчик параметр Socket типа TCustomWinSocket. Добавим еще код для показа того, что клиент подсоединился к нашему серверу. Для этого мы создаем аналогично предыдущей заготовку для события OnClientConnect нашего сервера и добавляем в нее следующий код: procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Form1.Caption:='Клиент подсоединится'; end; Т. е. при подсоединении клиента к нашему серверу у формы поменятся заголовок. С написанием сервера все! Класс TClientSocket На прошлом уроке мы сделали одну чась нашего сетевого приложения - сервер на основе компонента TServerSocket. Это занятие мы посвятим созданию второй части нашего приложения. Естественно, что это будет клиент и для него мы будем использовать компонент TClientSocket. Создайте новый проект на Delphi. На форме разместите компонент TClientSocket с вкладки Internet Палитры компонентов. Изменим для него ряд свойств, а именно свойство Address установите в 127.0.0.1, свойство Host - в localhost, Port - 3000. Вообще говоря эти параметры задают компьютер, к которому будет подсоединяться наш клиент. Задавать его можно либо по IP-адресу (мы тут написали 127.0.0.1 - это IP-адрес нашего компьютера), либо по имени (localhost - это универсальное имя для нашего компьютера). Если у вас есть доступ к сети, то можете указать и что-нибудь другое (разумеется там должен быть запущен наш сервер). В качестве порта мы должны указать тоже значение, которое мы задали для сервера на прошлом уроке. Добавьте еще на форму две кнопки. Для первой измените ее заголовок на "Подсоединиться" (по ней произойдет подсоединение к нашему серверу) и для второй - на "Отправить" (по ней мы будем отправлять некоторые данные на сервер). Добавьте на форму также одно текстовое поле - введенная в нем информация и будет отправляться на сервер. Свойство Text для текстового поля установите в "" (пустую строку). В обработчике для первой кнопки (с заголовком "Подсоединиться") пишем: procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Active:=true; end; В этом коде мы просто делаем наш сокет активным. Так как у него установлены свойства Address, Host и Port, то произойдет соединение с соответствующим сервером. В обработчике для второй кнопки пишем: procedure TForm1.Button2Click(Sender: TObject); begin ClientSocket1.Socket.SendText(Edit1.Text); end; В этом коде мы отсылаем данные из текстового поля Edit1. Все! Можно приступать к испытаниям. Для этого сначала запустите написанный на прошлом уроке сервер и нажмите в нем на кнопку "Слушать". После этого запустите клиента и нажмите в нем на кнопку "Подсоединиться". Обратите внимание, что у сервера поменяется заголовок. Теперь в текстовом поле клиента введите некоторый текст и нажмите на кнопку "Отправить". Этот текст передастся на сервер и покажется там в текстовом поле. С нашим минимальным сетевым приложением все!