BorlanD Russian Сommunity

Изучим основы работы с сетью. Компонент 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;

 

Т. е. при подсоединении клиента к нашему серверу у формы поменяется заголовок. С написанием сервера все!

            Всё на этом урок закончен.

Просмотров: 3178 | Категория: Delphi 7 | Дата: 11.05.2008