ску серверів. У разі повернення відповідь пакету, клієнт розуміє про те що зв'язок з сервером в порядку. У разі якщо у встановлений інтервал відповідь пакет не повернувся, здійснюється дві повторних спроби підключення на цей же сервер, далі в разі успіху В«робочимВ» сервером залишається все той же, інакше здійснюється перевірка зв'язку з другим сервером в списку, потім з третім і т. д. Коли список серверів закінчується клієнт повторює спробу підключення до першого.
. При запиті погоди клієнт відправляє запит на поточний сервер. Отриманий пакет він розбирає, і формує для представлення користувачеві.
Структура пакетів:
В«ПінгВ» клієнта:
Р <адресу клієнта>
В«ПінгВ» сервера:
Р
Запит погоди:
Z <адресу клієнта>
Відповідь з погодою
Z; температура; хмарність; -; розмежування для аналізу рядка
Функції та процедури
Клієнт
Функція отримання свого айпі: TForm1.GetLocalIP: String;
Процедура запиту погоди, клієнтом:
procedure TForm1.Button1Click (Sender: TObject);
Процедура отримання пакету клієнтом:
procedure TForm1.sUDPRead (Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Процедура, таймер перевірки зв'язку з сервером:
procedure TForm1.Timer1Timer (Sender: TObject);
Процедура, таймер перевірки чи був отримано відповідь від сервера у встановлений час
procedure TForm1.Timer2Timer (Sender: TObject);
Процедура установка початковий параметрів клієнта:
procedure TForm1.FormCreate (Sender: TObject);
Процедура управління формою: TForm1.Button3Click (Sender: TObject);
Сервер
Функція отримання свого айпі: TForm1.GetLocalIP: String;
Процедура установка початковий параметрів клієнта:
procedure TForm1.FormCreate (Sender: TObject);
Процедура аналізу отриманого пакету і відповідної відповіді:
procedure TForm1.sUDPRead (Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Інтерфейс
Форма сервера:
В
Форма клієнта:
В
Код програми
Код програми клієнта:
unit U...