Програмування сокетів в Дельфі
Вперше я познайомився з сокетами, якщо не помиляюся, рік чи півтора тому. Тоді стояло завдання розробити прикладної протокол, який би передавав на серверну машину (що працює на ОС Unix / Linux) запит і отримував відповідь по сокетних каналу. Треба зауважити, що на відміну від будь-яких інших протоколів (FTP, POP, SMTP, HTTP, і т.д.), сокети - це база для цих протоколів. Таким чином, користуючись сокетами, можна самому створити (зімітувати) і FTP, і POP, і будь-який інший протокол, причому не обов'язково вже створений, а навіть свій власний!
Отже, почнемо з теорії. Якщо Ви переконаний практик (і в очі не можете бачити будь-яких алгоритмів), то Вам слід пропустити цей розділ.
Алгоритм роботи з сокетних протоколами
Так що ж дозволяють нам робити сокети. Та все що завгодно! І в цьому одне з головних достоїнств цього способу обміну даними в мережі. Справа в тому, що при роботі з сокетом Ви просто посилаєте іншого комп'ютера послідовність символів. Так що цим методом Ви можете посилати як прості повідомлення, так і цілі файли! Причому, контролювати правильність передачі Вам не потрібно (як це було при роботі з COM-портами)!
Нижче слід приблизна схема роботи з сокетами в Дельфі-додатках:
Розберемо схему докладніше:
Опис властивостей і методів компонента TClientSocket
Тут ми познайомимося з основними властивостями, методами і подіями компонента TClientSocket.
Open - відкриття сокета (аналогічно присвоєння значення True властивості Active);
Close - закриття сокета (аналогічно присвоєння значення False властивості Active);
На цьому все методи компонента TClientSocket вичерпуються. А Ви запитаєте: "А як же працювати з сокетом? Як тоді пересилати дані?". Про це Ви дізнаєтеся трохи далі.
Практика і приклади
Приклад 1. Найпростіша сокетних програма