Робота з сокетами в delphi

Сокети (від socket (англ.) - роз'єм, гніздо) - це програмний інтерфейс, що забезпечує обмін інформацією між процесами.

Одним з основних достоїнств сокетного обміну інформацією в мережі можна назвати його гнучкість. Головний принцип роботи з сокетами складається у відправці послідовності байт іншого комп'ютера, це може бути просте текстове повідомлення або файл.

Важливо розрізняти два типи сокетів: клієнтські сокети. ісерверние сокети.

Для роботи з «клієнтським» типом сокетів в Delphiсуществует компонентTClientSocket. з «серверними» сокетами можна працювати за допомогою компонентаTServerSocket.

установка компонентів

Найчастіше компоненти TServerSocket і TClientSocket не входять до стандартного пакету установки Delphi, але їх можна встановити додатково.

Зайдіть на вкладку компонентів «Internet», і перевірте чи присутні там компоненти TServerSocket і TClientSocket, якщо немає, то встановіть їх. Зайдіть в меню "Component / Install Packages", потім натисніть кнопку "Add". У діалоговому вікні потрібно знайти файл "dclsocketsXX.bpl" (він лежить в папці bin, яка знаходиться в папці з Delphi), де XX - це числовий номер версії вашого Delphi. Знайдіть файл, натисніть "Відкрити", а потім у вікні "Install Packages" натисніть "OK". Тепер, у вкладці "Internet" з'явилися два компонента - TServerSocket і TClientSocket.

Робота з клієнтськими сокетами (tClientSocket)

1) Визначення властивостей Port і Host. Для успішного з'єднання свойствамPort іHost компонента TClientSocket необхідно привласнити деякі значення. У властивості Port потрібно вказати номер порту для підключення (1 - 65535, але краще брати з діапозона 1001 - 65535, тому що номери до 1000 можуть виявитися зайняті системними службами).

2) Відкриття сокета. Будемо розглядати сокет як черга символів, що передаються з одного комп'ютера на інший. Відкрити сокет можна, викликавши методOpen (компонент TClientSocket) або привласнивши значеніеTrue свойствуActive. Тут не зайвим буде поставити обробник виключення на випадок невдалого з'єднання.

3) Відправлення / прийом даних.

4) Закриття сокета. По завершенню обміну даними потрібно закрити сокет, викликавши методClose компонентаTClientSocket або привласнивши значеніеFalse свойствуActive.

Схожі статті