{"id":2722,"date":"2023-01-29T15:31:43","date_gmt":"2023-01-29T15:31:43","guid":{"rendered":"https:\/\/www.yazilimperver.com\/?p=2722"},"modified":"2023-03-17T18:53:57","modified_gmt":"2023-03-17T18:53:57","slug":"haftalik-c-54-boost-asio-i-giris","status":"publish","type":"post","link":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/","title":{"rendered":"Haftal\u0131k C++ 54 &#8211; Boost.Asio I &#8211; Giri\u015f"},"content":{"rendered":"<p>Merhaba sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bu yaz\u0131mda STL&#8217;den sonra en \u00e7ok kullan\u0131lan C++ k\u00fct\u00fcphanelerinden olan boost&#8217;un, \u00f6nemli bile\u015fenlerinden olan Boost.Asio&#8217;ya bir giri\u015f yap\u0131yor olaca\u011f\u0131z. Daha \u00f6nceki yaz\u0131lar\u0131mda da ifade etti\u011fim \u00fczere, C++ kabiliyetlerinin bir \u00e7o\u011funun \u00fczerinde ge\u00e7mi\u015f olduk, art\u0131k biraz daha C++ kullan\u0131m\u0131na y\u00f6nelik yaz\u0131lara da a\u011f\u0131rl\u0131k verece\u011fimden bahsetmi\u015ftim. Elbette bir tak\u0131m C++ kabiliyetlerine hen\u00fcz de\u011finmedim, \u00f6zellikle C++ 20 ile gelenlere, onlara da bak\u0131yor olaca\u011f\u0131z, fakat bu tarz yaz\u0131lar\u0131n da say\u0131s\u0131n\u0131 artt\u0131rmay\u0131 planl\u0131yorum.<\/p>\n<p>Boost.Asio \u00f6zellikle a\u011f ve alt seviye G\/\u00c7 programlama i\u00e7in haz\u0131r bir tak\u0131m kabiliyetler sunan bir C++ k\u00fct\u00fcphanesidir. \u0130leride payla\u015faca\u011f\u0131m yaz\u0131larda da g\u00f6rece\u011finiz \u00fczere, bunu da yaparken hem asenkron hem de senkron \u00e7al\u0131\u015fma modeline uygun API&#8217;ler sunmaktad\u0131r. Asl\u0131na bakarsan\u0131z, ASIO ismi de &#8220;asynchronous input\/output&#8221;&#8216;tan gelmektedir. Asenkron model, temelde bir operasyonun bitimini beklemeye ihtiyac\u0131n\u0131z olmadan, di\u011fer i\u015flevler devam edebilmeye dayanan modeldir. Bir di\u011fer ifade ile, \u00f6rne\u011fin bir dosya okuyacaks\u0131n\u0131z, senkron bir model takip etti\u011finiz durumda,\u00a0<em>dosyaOkuma()<\/em> y\u0131 \u00e7a\u011f\u0131rd\u0131\u011f\u0131n\u0131zda, mevcut ilerleyi\u015f dosya okuma bitene kadar duracakt\u0131r (blocking) ve bu i\u015flemin tamamlanmas\u0131 beklenecektir. Asenkron bir modelde ise, benzer bir \u00e7a\u011fr\u0131 yapt\u0131\u011f\u0131n\u0131zda, ilgili \u00e7a\u011fr\u0131 hemen d\u00f6necek fakat as\u0131l vakit alacak k\u0131s\u0131m (dosya okuma) arka planda farkl\u0131 bir thread (ya da benzer bir mekanizma) taraf\u0131ndan ger\u00e7ekle\u015ftirilerek ve mevcut ak\u0131\u015f i\u015flem tamamland\u0131\u011f\u0131nda (ya da tamamlanamad\u0131\u011f\u0131nda) haberdar edilir. Asl\u0131nda bakarsan\u0131z daha \u00f6nce g\u00f6rd\u00fc\u011f\u00fcm\u00fcz <em>std::async() <\/em>buna \u00f6rnek olarak verilebilir. Elbette, bunu s\u00f6yledi\u011fimde her zaman asenkron yakla\u015f\u0131m takip edilecek nihai y\u00f6ntem gibi g\u00f6r\u00fclse de, karma\u015f\u0131kl\u0131\u011f\u0131 artt\u0131rabilir. Boost.asio da bunu azaltmay\u0131 hedeflemekte.<\/p>\n<p>A\u015fa\u011f\u0131daki fig\u00fcr\u00fcn bu konuda sizlere bir fikir verece\u011fini umut ediyorum.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/sites\/4\/2020\/07\/sync.png\" alt=\"sync\" \/><\/p>\n<p>Daha \u00f6nce de bir ka\u00e7 yaz\u0131mda a\u011f programlama ile ilgili \u00f6rneklere bakm\u0131\u015ft\u0131k. Bunu da yaparken genel olarak QT ve QML kullanm\u0131\u015ft\u0131k. \u015eimdi ayn\u0131 kabiliyetleri, boost.asio kullanarak yap\u0131yor olaca\u011f\u0131z. Bu yaz\u0131lar\u0131ma g\u00f6z atmak isteyen takip\u00e7ilerimi a\u015fa\u011f\u0131daki ba\u011flant\u0131lara bakabilirler.<\/p>\n<ul>\n<li><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2019\/08\/23\/qt-tcp-istemci-uygulamasi-bcom-serisi-3\/\">QT TCP \u0130stemci Uygulamas\u0131 (B\u00c7OM Serisi \u2013 3)<\/a><\/strong><\/span><\/li>\n<li><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2019\/09\/29\/qt-tcp-sunucu-uygulamasi-bcom-serisi-4\/\"><strong>QT TCP Sunucu Uygulamas\u0131 (B\u00c7OM Serisi \u2013 4)<\/strong><\/a><\/span><\/li>\n<\/ul>\n<p>Peki neden boost.asio? Boost.asio, a\u011f programlama gibi i\u015fletim sistemine ba\u011f\u0131ml\u0131 alt seviye kabiliyetlerden, sizleri soyutlayarak ta\u015f\u0131nabilir uygulamalar geli\u015ftirmenize yard\u0131mc\u0131 olur. Ayr\u0131ca, benzer a\u011f programlama alternatiflerine g\u00f6re en olgun olanlardan birisidir. \u0130leride de g\u00f6rece\u011fimiz \u00fczere, boost.asio sadece a\u011f programlama de\u011fil di\u011fer asenkron i\u015flevler i\u00e7in de kullan\u0131m sunmaktad\u0131r.<\/p>\n<p>Kendi dok\u00fcmanyasyonuna bakt\u0131\u011f\u0131m\u0131zda, boost.asio a\u015fa\u011f\u0131daki hedefleri sa\u011flamay\u0131 ama\u00e7lam\u0131\u015f:<\/p>\n<ul>\n<li>Ta\u015f\u0131nabilir olmak (&#8220;Portability&#8221;),<\/li>\n<li>Geni\u015fleyebilirlik (&#8220;Scalability&#8221;),<\/li>\n<li>Verimlilik (&#8220;Efficiency&#8221;),<\/li>\n<li>BSD Soketler gibi halihaz\u0131rda mevcut yap\u0131lar ile uyumluluk,<\/li>\n<li>Kolay kullan\u0131m (&#8220;Ease of Use&#8221;),<\/li>\n<li>Geni\u015fleyebilmeye Olanak Sa\u011flama (&#8220;Basis for further abstraction&#8221;)<\/li>\n<\/ul>\n<p>Peki \u00f6zetle boost.asio bize ne sunuyor?<\/p>\n<ul>\n<li>Mevcut bir \u00e7ok i\u015fletim sistemi i\u00e7in kullan\u0131labilecek, a\u011f programlama ve benzeri kabiliyetleri geli\u015ftirme,<\/li>\n<li>IPv4 ve IPv6 deste\u011fi,<\/li>\n<li>TCP ve UDP deste\u011fi,<\/li>\n<li>Asenkron operasyon deste\u011fi,<\/li>\n<li>std::iostream uyumlu aray\u00fczler,<\/li>\n<li>SSL deste\u011fi,<\/li>\n<li>Saya\u00e7lar.<\/li>\n<\/ul>\n<p>Boost.asio&#8217;ya ili\u015fkin genel bir bilgi edindikten sonra \u015fimdi bu k\u00fct\u00fcphaneyi nas\u0131l olu\u015fturabilece\u011fimize bir g\u00f6z atal\u0131m. Bir sonraki yaz\u0131mda da hemen \u00f6rnek bir kullan\u0131ma bak\u0131yor olaca\u011f\u0131z.<\/p>\n<p>Boost.Asio&#8217;nun ba\u011f\u0131ml\u0131l\u0131klar\u0131 a\u015fa\u011f\u0131daki gibidir:<\/p>\n<ul>\n<li>Boost.System,<\/li>\n<li>Boost.Coroutine (opsiyonel),<\/li>\n<li>Boost.Regex (opsiyonel),<\/li>\n<li>OpenSSL (opsiyonel).<\/li>\n<\/ul>\n<p>\u0130lk olarak Linux ve WSL i\u00e7in nas\u0131l kurulum yapabilece\u011fimize bir g\u00f6z atal\u0131m.<\/p>\n<ul>\n<li>\u00d6ncelikle <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.boost.org\/users\/download\/\">boost sayfas\u0131ndan<\/a><\/strong><\/span> son s\u00fcr\u00fcm\u00fc indirelim ve a\u00e7al\u0131m:<\/li>\n<\/ul>\n<pre class=\"lang:sh decode:true\">wget https:\/\/boostorg.jfrog.io\/artifactory\/main\/release\/1.81.0\/source\/boost_1_81_0.tar.gz\r\ntar -xvf boost_1_81_0.tar.gz<\/pre>\n<ul>\n<li>Boost&#8217;u kurmadan \u00f6nce, b2&#8217;yi olu\u015ftural\u0131m.\n<ul>\n<li>A\u015fa\u011f\u0131daki de\u011fi\u015fkeni (DST_DIR) tan\u0131mlayal\u0131m ve sonra da bootstap komutunu \u00e7al\u0131\u015ft\u0131ral\u0131m,<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre class=\"lang:sh decode:true\">DST_DIR=\/home\/yazilimperver\/repos\/boost_1_81_0\r\n.\/bootstrap.sh --prefix=${DST_DIR} --includedir=headers --libdir=dist --with-libraries=date_time<\/pre>\n<ul>\n<li>\u015eimdi boostu&#8217;u olu\u015ftural\u0131m. E\u011fer <strong>sadece<\/strong> asio ve ilgili k\u00fct\u00fcphaneleri olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/li>\n<\/ul>\n<pre class=\"lang:sh decode:true\">sudo .\/b2 --prefix=${DST_DIR} --build-dir=${DST_DIR} address-model=64 --with-system --with-thread --with-date_time --with-regex --with-serialization stage<\/pre>\n<ul>\n<li>B\u00fct\u00fcn Boost k\u00fct\u00fcphanesini olu\u015fturmak i\u00e7in ise a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/li>\n<\/ul>\n<pre class=\"lang:sh decode:true \">.\/bootstrap.sh --prefix=${DST_DIR} --includedir=headers --libdir=dist\r\nsudo .\/b2 --prefix=${DST_DIR} --build-dir=${DST_DIR} address-model=64<\/pre>\n<ul>\n<li>Yukar\u0131daki komutlar sonras\u0131nda, Boost k\u00fct\u00fcphanelerine ili\u015fkin;\n<ul>\n<li>Ba\u015fl\u0131k dosyalar\u0131 <strong>\/home\/yazilimperver\/repos\/boost_1_81_0\/boost<\/strong> dizininde durur (ba\u015fl\u0131k dosyas\u0131 dizini olarak <strong>\/home\/yazilimperver\/repos\/boost_1_81_0<\/strong> verebilirsiniz),<\/li>\n<li>K\u00fct\u00fcphane dosyalar\u0131 ise <strong>\/home\/yazilimperver\/repos\/boost_1_81_0\/stage\/lib<\/strong> dizininde durur.<\/li>\n<\/ul>\n<\/li>\n<li>K\u00fct\u00fcphanenin ba\u015far\u0131l\u0131 bir \u015fekilde olu\u015fturulup\/olu\u015fturulmad\u0131\u011f\u0131n\u0131 denemek i\u00e7in:\n<ul>\n<li>touch example.cpp deyip ilgili dosyay\u0131 olu\u015ftural\u0131m ve i\u00e7eri\u011fini a\u015fa\u011f\u0131daki gibi doldural\u0131m,<\/li>\n<li>\n<pre class=\"lang:c++ decode:true literal-block \">#include &lt;boost\/lambda\/lambda.hpp&gt;\r\n#include &lt;iostream&gt;\r\n#include &lt;iterator&gt;\r\n#include &lt;algorithm&gt;\r\n\r\nint main()\r\n{\r\n    using namespace boost::lambda;\r\n    typedef std::istream_iterator&lt;int&gt; in;\r\n\r\n    std::for_each(\r\n        in(std::cin), in(), std::cout &lt;&lt; (_1 * 3) &lt;&lt; \" \" );\r\n}<\/pre>\n<\/li>\n<li>\u00d6rnek uygulamay\u0131 derlemek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7a\u011f\u0131ral\u0131m:<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre class=\"lang:sh decode:true \">c++ -I \/home\/yazilimperver\/repos\/boost_1_81_0\/ example.cpp -o example<\/pre>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Boost k\u00fct\u00fcphanelerini ba\u011flamak i\u00e7in ise <strong>-L<\/strong> deyip k\u00fct\u00fcphane dizinini verip, <strong>-lK\u00fct\u00fcphane\u0130smi<\/strong> ile de ilgili k\u00fct\u00fcphaneleri verebilirsiniz,<\/li>\n<li><strong>echo 1 2 3 | .\/example<\/strong> ile de deneyelim. \u00c7\u0131kt\u0131 olarak 1, 2 ve 3&#8217;\u00fcn 3 kat\u0131n\u0131n komut sat\u0131r\u0131na bas\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u015eimdi de, Windows\/Visual Studio kullanacak takip\u00e7ilerim i\u00e7in gerekli ad\u0131mlara g\u00f6z atal\u0131m:<\/p>\n<ul>\n<li>Boost kaynak kodlar\u0131n\u0131 <a href=\"https:\/\/boostorg.jfrog.io\/artifactory\/main\/release\/1.81.0\/source\/boost_1_81_0.7z\"><span style=\"color: #008000;\"><strong>https:\/\/boostorg.jfrog.io\/artifactory\/main\/release\/1.81.0\/source\/boost_1_81_0.7z<\/strong><\/span><\/a> sayfas\u0131ndan indirelim,<\/li>\n<li>Mevcut VS &#8220;Developer Command Prompt&#8221; a\u00e7al\u0131m ve boost k\u00fct\u00fcphanesinin kaynak kodlar\u0131n\u0131n oldu\u011fu dizine gidelim,<\/li>\n<li>bootstrap.bat beti\u011fini \u00e7al\u0131\u015ft\u0131ral\u0131m,<\/li>\n<li>\u015eimdi k\u00fct\u00fcphaneyi olu\u015ftural\u0131m. Ben burada, 64Bit i\u00e7in ve Visual Studio 2023 olarak bu k\u00fct\u00fcphaneyi olu\u015fturaca\u011f\u0131m. Bunun i\u00e7in de a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:\n<ul>\n<li>b2 &#8211;build-dir=build\\x64 address-model=64 threading=multi &#8211;stagedir=.\\bin\\x64 &#8211;toolset=msvc -j 8 link=static,shared runtime-link=static,shared &#8211;variant=debug,release<\/li>\n<\/ul>\n<\/li>\n<li>Bu ad\u0131mdan sonra bir kahve i\u00e7ebilirsiniz, \u00e7\u00fcnk\u00fc biraz vakit al\u0131yor olacak \ud83d\ude42<\/li>\n<\/ul>\n<p>K\u00fct\u00fcphane olu\u015fturma ve ayarlar\u0131na ili\u015fkin daha detayl\u0131 bilgiler i\u00e7in a\u015fa\u011f\u0131daki ba\u011flant\u0131lara da g\u00f6z atabilirsiniz:<\/p>\n<ul>\n<li><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.boost.org\/doc\/libs\/1_81_0\/more\/getting_started\/unix-variants.html\">https:\/\/www.boost.org\/doc\/libs\/1_81_0\/more\/getting_started\/unix-variants.html<\/a><\/strong><\/span><\/li>\n<li><a href=\"https:\/\/www.boost.org\/doc\/libs\/1_80_0\/doc\/html\/boost_asio\/using.html\"><span style=\"color: #008000;\"><strong>https:\/\/www.boost.org\/doc\/libs\/1_80_0\/doc\/html\/boost_asio\/using.html<\/strong><\/span><\/a><\/li>\n<\/ul>\n<p>Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bu yaz\u0131mda boost k\u00fct\u00fcphanelerini olu\u015fturarak, sonraki maceralar\u0131m\u0131za ilk ad\u0131m\u0131m\u0131z\u0131 atm\u0131\u015f olduk. Bir sonraki yaz\u0131mda, asio ile ilgili temel kavramlar ve \u00f6rnek kullan\u0131mlara ba\u015fl\u0131yor olaca\u011f\u0131z, o zaman kadar bol kodlu g\u00fcnler.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bu yaz\u0131mda STL&#8217;den sonra en \u00e7ok kullan\u0131lan C++ k\u00fct\u00fcphanelerinden olan boost&#8217;un, \u00f6nemli bile\u015fenlerinden olan Boost.Asio&#8217;ya bir giri\u015f yap\u0131yor olaca\u011f\u0131z. Daha \u00f6nceki yaz\u0131lar\u0131mda da ifade etti\u011fim \u00fczere, C++ kabiliyetlerinin bir \u00e7o\u011funun \u00fczerinde ge\u00e7mi\u015f olduk, art\u0131k biraz daha C++ kullan\u0131m\u0131na y\u00f6nelik yaz\u0131lara da a\u011f\u0131rl\u0131k verece\u011fimden bahsetmi\u015ftim. Elbette bir tak\u0131m C++ kabiliyetlerine hen\u00fcz de\u011finmedim,&#8230; <a class=\"more-link\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/\">Continue reading <span class=\"meta-nav\">&#8594;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[10,41,11],"tags":[1068,1069,1066,1067,1070],"class_list":["post-2722","post","type-post","status-publish","format-standard","hentry","category-c","category-modern-c","category-visual-studio","tag-asenkron-programlama","tag-b2","tag-boost","tag-boost-asio","tag-boost-build"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Haftal\u0131k C++ 54 - Boost.Asio I - Giri\u015f - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Haftal\u0131k C++ 54 - Boost.Asio I - Giri\u015f - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"og:description\" content=\"Merhaba sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bu yaz\u0131mda STL&#8217;den sonra en \u00e7ok kullan\u0131lan C++ k\u00fct\u00fcphanelerinden olan boost&#8217;un, \u00f6nemli bile\u015fenlerinden olan Boost.Asio&#8217;ya bir giri\u015f yap\u0131yor olaca\u011f\u0131z. Daha \u00f6nceki yaz\u0131lar\u0131mda da ifade etti\u011fim \u00fczere, C++ kabiliyetlerinin bir \u00e7o\u011funun \u00fczerinde ge\u00e7mi\u015f olduk, art\u0131k biraz daha C++ kullan\u0131m\u0131na y\u00f6nelik yaz\u0131lara da a\u011f\u0131rl\u0131k verece\u011fimden bahsetmi\u015ftim. Elbette bir tak\u0131m C++ kabiliyetlerine hen\u00fcz de\u011finmedim,... Continue reading &#8594;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/\" \/>\n<meta property=\"og:site_name\" content=\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-29T15:31:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-17T18:53:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/sites\/4\/2020\/07\/sync.png\" \/>\n<meta name=\"author\" content=\"yaz\u0131l\u0131mperver\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"yaz\u0131l\u0131mperver\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/\"},\"author\":{\"name\":\"yaz\u0131l\u0131mperver\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"headline\":\"Haftal\u0131k C++ 54 &#8211; Boost.Asio I &#8211; Giri\u015f\",\"datePublished\":\"2023-01-29T15:31:43+00:00\",\"dateModified\":\"2023-03-17T18:53:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/\"},\"wordCount\":1110,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"keywords\":[\"asenkron programlama\",\"b2\",\"boost\",\"boost asio\",\"boost build\"],\"articleSection\":[\"C++\",\"Modern C++\",\"Visual Studio\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/\",\"url\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/\",\"name\":\"Haftal\u0131k C++ 54 - Boost.Asio I - Giri\u015f - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#website\"},\"datePublished\":\"2023-01-29T15:31:43+00:00\",\"dateModified\":\"2023-03-17T18:53:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.yazilimperver.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Haftal\u0131k C++ 54 &#8211; Boost.Asio I &#8211; Giri\u015f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.yazilimperver.com\/#website\",\"url\":\"https:\/\/www.yazilimperver.com\/\",\"name\":\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"description\":\"Payla\u015fmak g\u00fczeldir.\",\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.yazilimperver.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\",\"name\":\"yaz\u0131l\u0131mperver\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"contentUrl\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"caption\":\"yaz\u0131l\u0131mperver\"},\"logo\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Haftal\u0131k C++ 54 - Boost.Asio I - Giri\u015f - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/","og_locale":"tr_TR","og_type":"article","og_title":"Haftal\u0131k C++ 54 - Boost.Asio I - Giri\u015f - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","og_description":"Merhaba sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bu yaz\u0131mda STL&#8217;den sonra en \u00e7ok kullan\u0131lan C++ k\u00fct\u00fcphanelerinden olan boost&#8217;un, \u00f6nemli bile\u015fenlerinden olan Boost.Asio&#8217;ya bir giri\u015f yap\u0131yor olaca\u011f\u0131z. Daha \u00f6nceki yaz\u0131lar\u0131mda da ifade etti\u011fim \u00fczere, C++ kabiliyetlerinin bir \u00e7o\u011funun \u00fczerinde ge\u00e7mi\u015f olduk, art\u0131k biraz daha C++ kullan\u0131m\u0131na y\u00f6nelik yaz\u0131lara da a\u011f\u0131rl\u0131k verece\u011fimden bahsetmi\u015ftim. Elbette bir tak\u0131m C++ kabiliyetlerine hen\u00fcz de\u011finmedim,... Continue reading &#8594;","og_url":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/","og_site_name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","article_published_time":"2023-01-29T15:31:43+00:00","article_modified_time":"2023-03-17T18:53:57+00:00","og_image":[{"url":"https:\/\/www.baeldung.com\/wp-content\/uploads\/sites\/4\/2020\/07\/sync.png"}],"author":"yaz\u0131l\u0131mperver","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"yaz\u0131l\u0131mperver","Tahmini okuma s\u00fcresi":"5 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/#article","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/"},"author":{"name":"yaz\u0131l\u0131mperver","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"headline":"Haftal\u0131k C++ 54 &#8211; Boost.Asio I &#8211; Giri\u015f","datePublished":"2023-01-29T15:31:43+00:00","dateModified":"2023-03-17T18:53:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/"},"wordCount":1110,"commentCount":2,"publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"keywords":["asenkron programlama","b2","boost","boost asio","boost build"],"articleSection":["C++","Modern C++","Visual Studio"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/","url":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/","name":"Haftal\u0131k C++ 54 - Boost.Asio I - Giri\u015f - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/#website"},"datePublished":"2023-01-29T15:31:43+00:00","dateModified":"2023-03-17T18:53:57+00:00","breadcrumb":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/29\/haftalik-c-54-boost-asio-i-giris\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Ana sayfa","item":"https:\/\/www.yazilimperver.com\/"},{"@type":"ListItem","position":2,"name":"Haftal\u0131k C++ 54 &#8211; Boost.Asio I &#8211; Giri\u015f"}]},{"@type":"WebSite","@id":"https:\/\/www.yazilimperver.com\/#website","url":"https:\/\/www.yazilimperver.com\/","name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","description":"Payla\u015fmak g\u00fczeldir.","publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yazilimperver.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb","name":"yaz\u0131l\u0131mperver","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/","url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","contentUrl":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","caption":"yaz\u0131l\u0131mperver"},"logo":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/comments?post=2722"}],"version-history":[{"count":7,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2722\/revisions"}],"predecessor-version":[{"id":2762,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2722\/revisions\/2762"}],"wp:attachment":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media?parent=2722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/categories?post=2722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/tags?post=2722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}