Поместим программу в папку Client
Создадим форму, приведенную на рисунке.
Для компонента ClientSocket укажем следующие свойства:
Port=1025 (любой свободный, обычно больше 1024, совпадает с указанным сервером)
Active=False.
Addres= 127.0.0.1 (в случае, если клиент устанавливается на том же компьютере, что и сервер. Если клиент устанавливается на другом компьютере необходимо указать IP адрес соответствующего компьютера.
Для события OnRead компонента ClientSocket пишем следующий код:
Var S:String;
Begin
S:=Socket.ReceiveText;ListBox1.Items.Add(S);
{В случае если в зависимости от пришедшего сообщения необходимо выполнить
какие-либо действия}
If S='48 > Pricol' Then ShowMessage('Прикол');
end;
Для кнопки «Подключиться к серверу»
Begin
If Not ClientSocket1.Active Then ClientSocket1.Active:=True;
end;
Для кнопки «Послать сообщение»
Begin
ClientSocket1.Socket.SendText(Edit1.Text);
end;
Для кнопки «Выход»
Begin
ClientSocket1.Active:=False;Close;
end;
Скомпилируем программу.
Задание к лабораторной работе
- Ознакомиться с технологией сетевого взаимодействия приложений посредством технологии Socket. Изучить основные функции интерфейса сокетов.
- Написать приложение, реализующее задание своего варианта.
- Отладить написанное приложение на локальной машине и проверить его работоспособность в локальной сети
- В отчете к лабораторной работе отразить ход выполнения работы, привести текст основных программных функций, ответить на контрольные вопросы.
Варианты заданий
1. Сетевая игра «камень, ножницы, бумага». Предусмотреть возможность ведения счета по результатам проведенных партий.
2. Игра в города. Осуществлять автоматическую проверку соответствия сообщений игроков правилам игры.
3. Статистическая обработка текста. Приложение-сервер подсчитывает частоту появления каждого символа в полученном тексте и посылает эту информацию клиенту.
Контрольные вопросы
1. Понятие технологии Windows Socket.
2. Основные этапы работы с сокетами.
3. Понятие технологии «клиент-сервер»
4. Блокирующие и неблокирующие сокеты.
5. Понятие IP-адреса.
6. Какой адрес используется в случае локального сервера?