Ц Програмирање

ПОСИКС утичница са Ц програмирањем

ПОСИКС утичница са Ц програмирањем

ПОСИКС утичница или једноставно утичница дефинише се као крајња тачка комуникације. На примјер, ако двије стране, А и Б, намјеравају међусобно комуницирати, тада ће бити потребно да обје ове стране успоставе везу између својих крајњих тачака. Соцкет пружа комуникационим странама приступник кроз који поруке путују. Ако говоримо у терминима клијента и сервера, тада ће посао утичнице на страни сервера бити преслушавање долазних веза, док ће подножје на страни клијента бити одговорно за повезивање са прикључком на страни сервера. Овај чланак има за циљ да појасни концепт ПОСИКС утичнице са Ц програмирањем.

Пример употребе Посик сокета са Ц програмирањем у Линук Минт 20

Пример који вам је представљен у овом одељку показаће интеракцију између клијента и сервера. Клијент и сервер су два главна ентитета модела клијент / сервер у свету рачунарства. У нашем примеру, и клијент и сервер ће међусобно слати и примати поруке док користе ПОСИКС сокет са Ц програмирањем у Линук Минт 20. Ради јаснијег разумевања кода, раздвојили смо код клијента и код сервера и у наставку ћемо вам их објаснити одвојено.

Шифра на страни сервера

За код на страни сервера једноставно смо креирали празан документ у почетном директоријуму нашег система Линук Минт 20 и назвали га сервер.ц. У тај празан документ морате да напишете исечке кода приказане на три слике у наставку:

Код приказан на горњим сликама може се чинити дугачким, међутим, покушајмо да га разумемо на изузетно лак начин. Пре свега, створили смо утичницу и прикључили је са жељеним бројем порта, што је у нашем случају 8080. Затим смо написали функцију преслушавања која је ту да тражи све долазне везе од клијената. У основи, клијент успева да се повеже са сервером само због присуства ове функције преслушавања. А када се ова веза успостави, сервер је постављен за слање и примање података од и до клијента.

Функције читања и слања служе у сврху примања и слања порука клијентима. Већ смо дефинисали подразумевану поруку у нашем коду коју намеравамо да пошаљемо нашем клијенту, а то је „Поздрав са сервера“. Након слања ове поруке клијенту, она ће бити приказана на страни клијента, док ће на страни сервера бити приказана порука „Хелло мессаге сент“. Ово је све о нашем коду на страни сервера.

Шифра на страни клијента

Сада смо, опет за клијентски код, креирали празан документ у почетном директоријуму нашег Линук Минт 20 система и назвали га клијент.ц. У тај празан документ треба да напишете исечке кода приказане на две слике испод:

У коду на страни клијента приказаном на горњим сликама креирали смо сокет на исти начин као и за код на страни сервера. Затим, постоји функција повезивања која ће покушати успоставити везу са сервером преко наведеног порта. А када сервер прихвати ову везу, клијент и сервер ће бити постављени да међусобно шаљу и примају поруке.

Опет, баш као и код на страни сервера, функције слања и читања су ту да шаљу и примају поруке са сервера. Такође, споменули смо подразумевану поруку коју желимо да пошаљемо серверу, а то је „Поздрав од клијента“. Након слања ове поруке серверу, ова порука ће бити приказана на страни сервера, док ће на страни клијента бити приказана порука „Хелло мессаге сент“. И ово нас доводи до краја објашњења кода на страни клијента.

Састављање и покретање кодова клијента и сервера

Очигледно ћемо сачувати датотеке на страни клијента и на страни сервера након писања ових програма, а затим ћемо бити спремни за компајлирање и покретање ових кодова. Стога ћемо моћи да визуализујемо интеракцију између нашег новоствореног клијента и сервера. Да бисмо постигли овај циљ, морамо да покренемо два различита терминала, јер би требало да покрећемо два одвојена програма. Један терминал биће посвећен извођењу кода на страни сервера, а други за код на страни клијента.

Дакле, за компајлирање кода на страни сервера, извршићемо следећу наредбу у првом терминалу:

$ гцц сервер.ц -о сервер

Након покретања ове наредбе, ако у вашем коду на страни сервера неће бити грешака, тада се на терминалу неће приказати ништа, што ће бити показатељ успешне компилације.

На исти начин, компајлираћемо клијентски код са наредбом приказаном доле покретањем у другом терминалу:

$ гцц клијент.ц -о клијент

Једном кад се оба кода компајлирају, покренућемо их један по један. Међутим, прво морамо покренути код на страни сервера, јер би требало да преслушава захтеве за повезивање. Код на страни сервера може се покренути помоћу следеће наредбе:

$ ./сервер

Након покретања кода на страни сервера, можемо покренути код на страни клијента помоћу наредбе приказане доле:

$ ./ клијент

Једном када и клијент и сервер буду покренути, постаћете сведоци излаза приказаних на следећим сликама на оба терминала:

Закључак

Надамо се да ћете, након што прођете пример подељен са вама у овом чланку, моћи да ефикасно користите ПОСИКС утичнице за слање и примање података између клијента и сервера. Овај пример је само основна демонстрација Посик утичница са Ц програмирањем, међутим, можете чак и да ове програме учините сложенијим према вашим захтевима.

СуперТукКарт за Линук
СуперТукКарт је сјајан наслов дизајниран да вам пружи Марио Карт искуство бесплатно на вашем Линук систему. Прилично је изазовно и забавно играти, диз...
Водич за битку за Веснотх
Битка за Веснотх је једна од најпопуларнијих стратешких игара отвореног кода које тренутно можете играти. Не само да је ова игра у развоју већ јако ду...
0 А.Д. Приручник
Од многих стратешких игара тамо, 0 А.Д. успева да се истакне као свеобухватан наслов и врло дубока, тактичка игра упркос томе што је отворен извор. Ра...