<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.sockets.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'function.socket-select.php',
    1 => 'socket_select',
    2 => 'Belirtilen soket dizileri &uuml;zerinde belirtilen zaman aşımı ile
  select() sistem &ccedil;ağrısını &ccedil;alıştırır',
  ),
  'up' => 
  array (
    0 => 'ref.sockets.php',
    1 => 'Soket İşlevleri',
  ),
  'prev' => 
  array (
    0 => 'function.socket-recvmsg.php',
    1 => 'socket_recvmsg',
  ),
  'next' => 
  array (
    0 => 'function.socket-send.php',
    1 => 'socket_send',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/sockets/functions/socket-select.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.socket-select" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">socket_select</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.1.0, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">socket_select</span> &mdash; <span class="dc-title">Belirtilen soket dizileri üzerinde belirtilen zaman aşımı ile
  select() sistem çağrısını çalıştırır</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.socket-select-description">
  <h3 class="title">Açıklama</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>socket_select</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter reference">&$oku</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter reference">&$yaz</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter reference">&$diğer</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></span> <code class="parameter">$tv_sec</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$tv_usec</code><span class="initializer"> = 0</span></span><br>): <span class="type"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>socket_select()</strong></span> işlevi bağımsız değişken olarak soket dizileri
   alır ve durumları değişinceye kadar bekler. Bu soket dizileri BSD
   soketlerinden kaynaklanan bir kabulle dosya tanıtıcıları olarak da
   bilinir. İşleve birbirinden bağımsız üç çeşit soket dizisi belirtilebilir.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.socket-select-parameters">
  <h3 class="title">Bağımsız Değişkenler</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">oku</code></dt>
     <dd>
      <p class="para">
       Karakterlerin okunmaya hazır hale gelmesine kadar (başka bir deyişle,
       okumanın engellenmediği görülene kadar) dinlenecek soket dizisi.
       (Okunacak tek şeyin dosyasonu karakteri olduğu durumda
       <span class="function"><a href="function.socket-read.php" class="function">socket_read()</a></span> sıfır uzunlukta bir dizge ile döner.)
      </p>
     </dd>
    
    
     <dt><code class="parameter">yaz</code></dt>
     <dd>
      <p class="para">
       Yazmanın engellenmediği görülene kadar (soket yazmaya hazır hale
       gelene kadar) dinlenecek soket dizisi.
      </p>
     </dd>
    
    
     <dt><code class="parameter">diğer</code></dt>
     <dd>
      <p class="para">
       Bu dizideki soketler olağan dışı durumlara göre denetlenir.
      </p>
     </dd>
    
    
     <dt><code class="parameter">tv_sec</code></dt>
     <dd>
      <p class="para">
       Saniye cinsinden zaman aşımı. <code class="parameter">tv_sec</code> ve
       <code class="parameter">tv_usec</code> birlikte select() sistem çağrısının
       <code class="literal">zamanaşımı</code> bağımsız değişkenini oluşturur.
       <code class="literal">zamanaşımı</code>, <span class="function"><strong>socket_select()</strong></span>
       dönmeden önce beklenecek azami süreyi belirler.
       <code class="parameter">tv_sec</code> sıfır olabilir; bu durumda
       <span class="function"><strong>socket_select()</strong></span> beklemeden döner. Çağrı yinelemek
       için yararlıdır. <code class="parameter">tv_sec</code> <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> olduğu takdirde
       (zaman aşımı yok), <span class="function"><strong>socket_select()</strong></span> sonsuza kadar
       bekleyebilir.
      </p>
     </dd>
    
    
     <dt><code class="parameter">tv_usec</code></dt>
     <dd>
      <p class="para">
       Mikrosaniye cinsinden zaman aşımı. Ayrıntılar için
       <code class="parameter">tv_sec</code> bağımsız değişkenine bakınız.
      </p>
     </dd>
    
   </dl>
  </p>
  <div class="warning"><strong class="warning">Uyarı</strong>
   <p class="para">
    Dönüşte, soket özkaynaklarının durumlarını belirtmek için dizilerde
    değişiklik yapılır.
   </p>
  </div>
  <p class="para">
   <span class="function"><strong>socket_select()</strong></span> işlevine üç diziyi de aktarmak zorunda
   değilsiniz. Kullanmadığınız dizileri boş bırakabilir veya bir dizi yerine
   <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> belirtebilirsiniz. Ayrıca, bu dizilerin gönderimli aktarılmaları
   gerektiğine de dikkat ediniz; <span class="function"><strong>socket_select()</strong></span> işlevi
   dönerken soket durumlarını yansıtacak şekilde bu dizilerde değişiklik
   yapar.
  </p>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Zend motorundaki bir sınırlamadan dolayı, bir işleve gönderimli
    aktarılması gereken bir bağımsız değişken yerine işleve doğrudan <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> sabitini
    aktarmak mümkün değildir. Bu nedenle işleve değeri <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> olan geçici bir
    değişken veya son değeri bir değişken olan bir ifade aktarmalısınız:
    <div class="example" id="example-1">
     <p><strong>Örnek 1 - <span class="function"><strong>socket_select()</strong></span> ile <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> kullanımı</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$diger </span><span style="color: #007700">= </span><span style="color: #0000BB">NULL</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">socket_select</span><span style="color: #007700">(</span><span style="color: #0000BB">$oku</span><span style="color: #007700">, </span><span style="color: #0000BB">$yaz</span><span style="color: #007700">, </span><span style="color: #0000BB">$diger</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.socket-select-returnvalues">
  <h3 class="title">Dönen Değerler</h3>
  <p class="para">
   Başarı durumunda <span class="function"><strong>socket_select()</strong></span>, değişiklik yapılan
   soketlerin sayısını döndürür. Eğer hiçbir değişiklik olmaksızın zaman
   aşımı dolmuşsa işlev <code class="literal">0</code> döndürür. Bir hata durumunda
   <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> döner. Hata kodu <span class="function"><a href="function.socket-last-error.php" class="function">socket_last_error()</a></span> ile
   alınabilir.
  </p>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    İşlev, <code class="literal">0</code> değerini anlamlı bir değer olarak
    döndürdüğünden <code class="literal">==</code> işleci ile yapılan bir sınama <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>
    ile sonuçlanacağından hata durumunu sınarken <code class="literal">===</code>
    işlecini kullanmalısınız:
    <div class="example" id="example-2">
     <p><strong>Örnek 2 - <span class="function"><strong>socket_select()</strong></span> sonucunu anlamak</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$e </span><span style="color: #007700">= </span><span style="color: #0000BB">NULL</span><span style="color: #007700">;<br />if (</span><span style="color: #0000BB">false </span><span style="color: #007700">=== </span><span style="color: #0000BB">socket_select</span><span style="color: #007700">(</span><span style="color: #0000BB">$o</span><span style="color: #007700">, </span><span style="color: #0000BB">$y</span><span style="color: #007700">, </span><span style="color: #0000BB">$d</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">)) {<br />    echo </span><span style="color: #DD0000">"socket_select() başarısız oldu; sebep: " </span><span style="color: #007700">.<br />        </span><span style="color: #0000BB">socket_strerror</span><span style="color: #007700">(</span><span style="color: #0000BB">socket_last_error</span><span style="color: #007700">()) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 examples" id="refsect1-function.socket-select-examples">
  <h3 class="title">Örnekler</h3>
  <p class="para">
   <div class="example" id="example-3">
    <p><strong>Örnek 3 - <span class="function"><strong>socket_select()</strong></span> örneği</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Oku dizisini hazırlayalım */<br /></span><span style="color: #0000BB">$oku   </span><span style="color: #007700">= array(</span><span style="color: #0000BB">$soket1</span><span style="color: #007700">, </span><span style="color: #0000BB">$soket2</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$yaz  </span><span style="color: #007700">= </span><span style="color: #0000BB">NULL</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$diger </span><span style="color: #007700">= </span><span style="color: #0000BB">NULL</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$degisen_soket_sayısı </span><span style="color: #007700">= </span><span style="color: #0000BB">socket_select</span><span style="color: #007700">(</span><span style="color: #0000BB">$oku</span><span style="color: #007700">, </span><span style="color: #0000BB">$yaz</span><span style="color: #007700">, </span><span style="color: #0000BB">$diger</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /><br />if (</span><span style="color: #0000BB">$degisen_soket_sayısı </span><span style="color: #007700">=== </span><span style="color: #0000BB">false</span><span style="color: #007700">) {<br />    </span><span style="color: #FF8000">/* Hata işlemleri */<br /></span><span style="color: #007700">} else if (</span><span style="color: #0000BB">$degisen_soket_sayısı </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">0</span><span style="color: #007700">) {<br />    </span><span style="color: #FF8000">/* En azından bir sokette bir şeyler olmuş */<br /></span><span style="color: #007700">}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.socket-select-notes">
  <h3 class="title">Notlar</h3>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Bazı soket gerçeklenimlerinin çok dikkatli olmayı gerektirdiğini
    bilmeniz gereken bir kaç temel kural:
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       <span class="function"><strong>socket_select()</strong></span> işlevini daima zaman aşımsız
       kullanmaya çalışın. İşe yarar bir veri yoksa betiğiniz hiçbir işlem
       yapmamalıdır. Zaman aşımlarına bağımlı bir kod taşınabilir değildir ve
       hata ayıklamak çok zor olur.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <span class="function"><strong>socket_select()</strong></span> çağrısından sonra üzerinde hiçbir
       işlem yapmayacağınız soket nesnelerini hiçbir diziye eklemeyin.
       <span class="function"><strong>socket_select()</strong></span> döndükten sonra dizilerdeki tüm
       soketlere mutlaka bakılmalıdır. Yazmaya hazır soketlere
       yazılmalı, okunmaya hazır soketler okunmalıdır.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Diziden dönen bir sokete oku veya yaz işlemi yapacaksanız verinin
       tamamını okumak veya yazmak zorunda değilsiniz. Sadece bir bayt
       okumaya veya yazmaya bile hazır olmalısınız.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Hemen tüm soket gerçeklenimlerinde <code class="parameter">diğer</code>
       dizisindeki soketlerin band dışı verilerle ilgili olduğu varsayılır.
      </span>
     </li>
    </ul>
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.socket-select-seealso">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.socket-read.php" class="function" rel="rdfs-seeAlso">socket_read()</a> - Bir soketten belli sayıda bayta kadar okuma yapar</span></li>
    <li><span class="function"><a href="function.socket-write.php" class="function" rel="rdfs-seeAlso">socket_write()</a> - Bir sokete yazar</span></li>
    <li><span class="function"><a href="function.socket-last-error.php" class="function" rel="rdfs-seeAlso">socket_last_error()</a> - Soket &uuml;zerindeki son hatanın kodunu d&ouml;nd&uuml;r&uuml;r</span></li>
    <li><span class="function"><a href="function.socket-strerror.php" class="function" rel="rdfs-seeAlso">socket_strerror()</a> - Bir soket hatasıyla ilgili a&ccedil;ıklamayı d&ouml;nd&uuml;r&uuml;r</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>