Delphi. Учимся на примерах
Шрифт:
При нажатии кнопки Disconnect мы перестаем передавать координаты указателя на сервер и отсоединяемся от него.
Для того чтобы на сервере не возникало ошибок при аварийном выключении клиента, создайте обработчик события формы OnDestroy и добавьте в него следующий код:
При аварийном завершении программы закрывается соединение и выполняется отключение от сервера.
Для уведомления пользователя об успешном соединении с сервером создайте обработчик события client.OnConnect:
Для реализации аналогичного действия при отсоединении от сервера, следует создать обработчик события OnDisconnect:
Теперь обработаем событие OnTimer для компонента Timer:
Каждые полсекунды мы будем получать координаты указателя мыши и отправлять их на сервер. Программа-клиент полностью готова. Теперь разработаем программу-сервер.
Разработка серверной программы
Создайте новый проект Delphi. Разместите на форме главный компонент программы — ServerSocket категории Internet и измените значение его свойства Port на 2801.
Первым делом, обеспечим нашей форме невидимость. Создайте обработчик события формы OnPaint и добавьте в него следующий код:
Для того чтобы активизировать сервер при запуске программы, необходимо обработать событие формы OnCreate:
Для того чтобы при выходе из программы сервер отключался, необходимо обработать событие формы OnDestroy:
Теперь осталось только обработать событие OnClientRead компонента ServerSocket. Это событие будет происходить каждый раз, когда будет поступать команда от клиента. Код обработчика этого события имеет следующий вид:
При получении текста мы считываем в отдельные переменные значение координат указателя по X и по Y. Затем изменяем координаты на те, которые только что получили от клиента.
Теперь программа полностью готова, и для того чтобы протестировать ее, необходимо иметь хотя бы два компьютера, объединенные в локальную сеть или подключенные к Internet.
Полный исходный код модулей
На границе империй. Том 10. Часть 4
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
рейтинг книги
Лейб-хирург
2. Зауряд-врач
Фантастика:
альтернативная история
рейтинг книги
Gloster Gladiator
72. Война в воздухе
Научно-образовательная:
история
военная техника и вооружение
военная история
рейтинг книги
Целеполагание
4. Глэрд
Фантастика:
фэнтези
боевая фантастика
рпг
рейтинг книги
Неудержимый. Книга XXX
30. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Библия
Религия и эзотерика:
религия
рейтинг книги
Древесный маг Орловского княжества 2
2. Орловское княжество
Фантастика:
аниме
сказочная фантастика
фэнтези
попаданцы
рейтинг книги
Личный аптекарь императора. Том 4
4. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
рейтинг книги
Курс 1. Сентябрь
1. Маркатис
Фантастика:
аниме
фэнтези
сказочная фантастика
рейтинг книги
Лекарь Империи 2
2. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
рейтинг книги
Кодекс Охотника. Книга XXXVIII
38. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
юмористическое фэнтези
рейтинг книги
Газлайтер. Том 19
19. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Возлюби болезнь свою
Научно-образовательная:
психология
рейтинг книги
Свет горизонта
1. Свет горизонта
Фантастика:
фэнтези
рейтинг книги