|
|
PHP (angielski akronim rekurencyjny, którego rozwinięcie to PHP Hypertext Preprocessor), pierwotnie nazwany Personal
Home Page - skryptowy język programowania, służący przede wszystkim do tworzenia dynamicznych stron WWW i wykonywany w
tym przypadku po stronie serwera, z możliwością zagnieżdżania w HTML (bądź XHTML). PHP jest podobny w założeniach do
dużo starszego mechanizmu SSI (Server Side Includes), jednak jest w stosunku do SSI nieporównanie bardziej rozbudowany.
Udostępniany jest na zasadach licencji open-source. Jego składnia bazuje na językach C, Java i Perl.
SQL (ang. Structured Query Language) to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz
do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi
zarządzania bazą danych DBMS.
Jest to język programowania opracowany w latach siedemdziesiątych w firmie IBM. Stał się on standardem w komunikacji z
serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z
użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a.
Apache jest otwartym serwerem HTTP dostępnym dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD,
Microsoft Windows). Po angielsku słowo Apache wymawia się epaczi, co brzmi tak samo jak a patchy (server), co było
określeniem tego serwera we wczesnym stadium jego rozwoju w 1995 roku, kiedy był on głównie zbiorem poprawek (patch)
nałożonych na serwer HTTP o nazwie NCSA.
Apache jest najszerzej stosowanym serwerem HTTP w Internecie. W maju 2003 jego udział wśród serwerów wynosił 62%. W
połączeniu z interpreterem języka skryptowego PHP i bazą danych MySQL, Apache stanowi jedno z najczęściej spotykanych
środowisk w firmach oferujących miejsce na serwerach sieciowych.
|
stream_socket_server
(PHP 5) stream_socket_server -- Create an Internet or
Unix domain server socket
Descriptionresource stream_socket_server ( string local_socket [,
int &errno [, string &errstr [, int flags [, resource
context]]]] )
Creates a stream or datagram socket on the specified
local_socket. The type of socket
created is determined by the transport specified using standard
URL formatting: transport://target.
For Internet Domain sockets (AF_INET) such as TCP and UDP, the
target portion of the remote_socket parameter should consist of a
hostname or IP address followed by a colon and a port number.
For Unix domain sockets, the target portion should point to the socket
file on the filesystem. flags is a
bitmask field which may be set to any combination of socket
creation flags. The default value of flags is STREAM_SERVER_BIND | STREAM_SERVER_LISTEN.
Notatka: For UDP sockets, you must use STREAM_SERVER_BIND as the
flags parameter.
This function only creates a socket, to begin accepting
connections use stream_socket_accept().
If the call fails, it will return FALSE and if the optional errno and errstr
arguments are present they will be set to indicate the actual
system level error that occurred in the system-level
socket(), bind(), and listen()
calls. If the value returned in errno is 0 and the
function returned FALSE, it is
an indication that the error occurred before the bind() call. This is most likely due to a
problem initializing the socket. Note that the errno and errstr
arguments will always be passed by reference.
Depending on the environment, Unix domain sockets may not be
available. A list of available transports can be retrieved
using stream_get_transports(). See Dodatek O for a list of bulitin
transports.
Przykład 1. Using TCP server sockets
<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)<br />\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
} ?> |
|
The example below shows how to act as a time server which
can respond to time queries as shown in an example on stream_socket_client().
Notatka: Most systems require root access to
create a server socket on a port below 1024.
Przykład 2. Using UDP server sockets
<?php
$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
die("$errstr ($errno)");
}
do {
$pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
echo "$peer\n";
stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);
?> |
|
Notatka: Podając numeryczny adres IPv6 (np.
fe80::1), adres musi być objęty nawiasami kwadratowymi. Na
przykład tcp://[fe80::1]:80.
See also stream_socket_client(), stream_set_blocking(), stream_set_timeout(), fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.
|