1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-24 07:12:18 +01:00
Files
archived-doc-tr/reference/sockets/examples.xml
Nilgün Belma Bugüner b856dbf558 update for sync with English docs.
git-svn-id: https://svn.php.net/repository/phpdoc/tr/trunk@288842 c90b9560-bf6c-de11-be94-00142212c4b1
2009-09-26 08:19:48 +00:00

173 lines
4.8 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: af4410a7e15898c3dbe83d6ea38246745ed9c6fb Maintainer: nilgun Status: ready -->
<chapter xml:id="sockets.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<para>
<example>
<title>- Soket örneği: Basit bir TCP/IP sunucu</title>
<para>
Bu örnekte basit bir raporlama sunucusu gösterilmiştir.
<varname>adres</varname> ve <varname>port</varname> değişkenleri
ayarlarınıza uygun olarak değiştirilip işleme sokulur. Sunucuya şöyle
bir komutla bağlanabilirsiniz: <command>telnet 192.168.1.53
10000</command> (buradaki adres ve port ayarlarınıza göre belirlenir).
Yazdığınız herşey sunucu tarafında çıktılanır ve tekrar size gösterilir,
Çıkmak için 'quit' girilir.
</para>
<programlisting role="php">
<![CDATA[
#!/usr/local/bin/php -q
<?php
error_reporting(E_ALL);
/* Betik sürekli bağlantı beklesin. */
set_time_limit(0);
/* Örtük çıktılama etkin olsun, böylece ne yaptğımızı görürüz. */
ob_implicit_flush();
$adres = '192.168.1.53';
$port = 10000;
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() başarısız oldu: sebep: " .
socket_strerror(socket_last_error()) . "\n";
}
if (socket_bind($sock, $adres, $port) === false) {
echo "socket_bind() başarısız oldu: sebep: " .
socket_strerror(socket_last_error($sock)) . "\n";
}
if (socket_listen($sock, 5) === false) {
echo "socket_listen() başarısız oldu: sebep: " .
socket_strerror(socket_last_error($sock)) . "\n";
}
do {
if (($msgsock = socket_accept($sock)) === false) {
echo "socket_accept() başarısız oldu: sebep: " .
socket_strerror(socket_last_error($sock)) . "\n";
break;
}
/* Komutları gönder. */
$msg = "\nPHP Deneme Sunucusuna Hoş Geldiniz.\n" .
ıkmak için 'quit', sunucuyu kapatmak için " .
"'shutdown' yazıp enter tuşuna basınız.\n";
socket_write($msgsock, $msg, strlen($msg));
do {
if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ)))
{
echo "socket_read() başarısız oldu: sebep: " .
socket_strerror(socket_last_error($msgsock)) . "\n";
break 2;
}
if (!$buf = trim($buf)) {
continue;
}
if ($buf == 'quit') {
break;
}
if ($buf == 'shutdown') {
socket_close($msgsock);
break 2;
}
$talkback = "Şunları yazdınız:'$buf'.\n";
socket_write($msgsock, $talkback, strlen($talkback));
echo "$buf\n";
} while (true);
socket_close($msgsock);
} while (true);
socket_close($sock);
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>- Soket örneği: Basit TCP/IP istemci</title>
<para>
Örnekte tek atımlık basit bir HTTP istemcisi gösterilmiştir. Bir sayfaya
bağlanır, bir HEAD isteği yapar, yanıtı gösterir ve çıkar.
</para>
<programlisting role="php">
<![CDATA[
<?php
error_reporting(E_ALL);
echo "<h2>TCP/IP bağlantısı</h2>\n";
/* WWW hizmeti için port isteyelim. */
$service_port = getservbyname('www', 'tcp');
/* Hedef konağın IP adresini alalım. */
$adres = gethostbyname('www.example.com');
/* Bir TCP/IP soketi oluşturalım. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() başarısız oldu: sebep: " .
socket_strerror(socket_last_error()) . "\n";
} else {
echo "Tamam.\n";
}
echo "'$adres' adresine '$service_port' üzerinden bağlanmaya çalışılıyor...";
$result = socket_connect($socket, $adres, $service_port);
if ($result === false) {
echo "socket_connect() başarısız oldu.\nSebep: ($result) " .
socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "Tamam.\n";
}
$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';
echo "HTTP HEAD isteği gönderiliyor...";
socket_write($socket, $in, strlen($in));
echo "Tamam.\n";
echo "Alınan yanıt:\n\n";
while ($out = socket_read($socket, 2048)) {
echo $out;
}
echo "Soket kapatılıyor...";
socket_close($socket);
echo "Tamam.\n\n";
?>
]]>
</programlisting>
</example>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->