Кампутары, Сеткі
Кліент-сервер Delphi на аснове сокетаў
Сёння застаецца вельмі актуальнай тэма ў сферы інфармацыйных тэхналогій, прысвечаная распрацоўцы і разгортванні архітэктуры «кліент - сервер». Звязана гэта з тым, што інфармацыйныя сістэмы розных маштабаў знаходзяць усё большае прымяненне ў розных галінах. Акрамя таго, структура любой базы дадзеных ствараецца па пэўных параметрах, прычым такім чынам, што працаваць з ёй у штатным рэжыме магчыма толькі з ужываннем адмысловых прыкладанняў. Таму рэалізацыя архітэктуры «кліент - сервер» - вельмі важная задача, якая ўзнікае перад аддзеламі інфармацыйных тэхналогій на розных аб'ектах, паспяховае вырашэнне якой дасць магчымасць працаваць прадпрыемству аптымальна і бесперабойна.
Сервер на аснове сокетаў
Сервер, які працуе па пратаколе сокетаў, дазваляе адначасова апрацоўваць запыты ад вялікай колькасці карыстальнікаў. Пры гэтым адміністратар у любы момант часу можа ўнесці карэктывы ў налады, каб увесці абмежаванне на колькасць адначасова якія абслугоўваюцца карыстальнікаў. Па змаўчанні гэты параметр не ўтрымлівае абмежаванняў.
Пасля падлучэння кліента да сервера адкрываецца асобны канал з сокетам, па якім адбываецца абмен дадзенымі. Аднак найбольш аптымальным і бяспечным з'яўляецца разгортванне для кожнага новага падлучэння спецыяльнага асобнага працэсу.
Схема працы архітэктуры «Кліент - сервер»
Разгледзім больш падрабязна схему рэалізацыі архітэктуры, паслядоўна аналізуючы часта выкарыстоўваюцца азначэнні:
1. Уласцівасці ServerType і Port. Для таго каб карыстальнік меў магчымасць падлучыцца да сервера, важна гарантаваць, каб порт, які выкарыстоўваецца як серверам, так і кліентам супадаў. Менавіта прызначэнне дадзенага параметру вырабляецца ва ўласцівасці Port. Тып падлучэння вызначаецца параметрам ServerType.
2. Працэс адкрыцця сокета. Для пачатку сесіі «кліент - сервер» важна адкрыць сокет і порт. Выкарыстоўваецца ўласцівасць Listen.
3. Далей вырабляецца абмен дадзенымі з карыстальнікам. Пры завяршэнні працы адбываецца адключэнне кліента. Пры адпаведнай камандзе сістэмнага адміністратара сервер завяршае сваю працу, перарываючы ўсе устаноўленыя злучэння і спыняючы працэс чакання новых падключэнняў.
Прымяненне TServerSocket ў прыкладаннях на мове Delphi «Кліент - сервер»
Для адпраўлення і прыёму інфармацыі ад карыстальніка выкарыстоўваюцца падзеі OnClientWrite і OnClientRead. Пры гэтым ўзаемадзейнічаць з карыстальнікам можна праз такі параметр, як ClientSocket. Пры працы часта выкарыстоўваюцца наступныя метады і ўласцівасці:
- колькасць падлучаных ў бягучы момант карыстальнікаў;
- колькасць актыўных працэсаў;
- лік свабодных працэсаў;
- порт, хост-імя і лакальны IP-адрас;
- разблакіроўка і блакаванне сокета.
У заключэнне звернем увагу на часта ўжываецца адмысловая ўласцівасць - Data. Гэта ўласцівасць ўжываецца ў наступнай сітуацыі. Як правіла, сервер выкарыстоўваецца для абслугоўвання вялікай колькасці карыстальнікаў, а значыць, ёсць неабходнасць захоўваць звесткі аб кожным кліенце, прычым гэтую інфармацыю трэба прывязаць да пэўнага сокету. У падобных сітуацыях выкарыстанне ручной прывязкі вельмі нязручна, а таму шырока ўжываецца ўласцівасць Data. Аднак важна памятаць, што Data - гэта паказальнік, а таму важна абавязкова праверыць, ці выкананыя ўсе правілы працы з паказальнікамі (указанне тыпу, вылучэнне памяці і г.д.)
дакументацыя
На сённяшні дзень літаратуры па распрацоўцы прыкладанняў «кліент - сервер» Delphi, звязанай з распрацоўкай і прымяненнем сокетаў, прадстаўлена вельмі мала. Таму для дэталёвага вывучэння дадзенага аспекту можна звярнуцца да дакументацыі па Linux і Unix-сістэмам, бо у ёй дастаткова падрабязна разглядаецца тэхналогія разгортвання прыкладанняў з ужываннем сокетаў, аднак, як правіла, на мовах Perl ці З ++.
Similar articles
Trending Now