The socket extension implements a low-level
interface to the socket communication functions based
on the popular BSD sockets, providing the possibility
to act as a socket server as well as a client.
For a more generic client-side socket interface,
see fsockopen() and
pfsockopen().
When using these functions, it is important to
remember that while many of them have identical names
to their C counterparts, they often have different
declarations. Please be sure to read the descriptions
to avoid confusion.
Those unfamiliar with socket programming can find
a lot of useful material in the appropriate Unix man
pages, and there is a great deal of tutorial
information on socket programming in C on the web, much
of which can be applied, with slight modifications, to
socket programming in PHP. The
UNIX Socket FAQ might be a good start.
|
The socket functions described here are part of an
extension to PHP which must be enabled at compile time
by giving the --enable-sockets
option to configure.
以下的常數由此延伸定義, 只在這個延伸被編譯成PHP或實行時期被動態載入時有效。
The socket extension was written to provide a
useable interface to the powerful BSD sockets. Care has
been taken that the functions work equally well on
Win32 and Unix implementations. Almost all of the
sockets functions may fail under certain conditions and
therefore emit an
E_WARNING message describing the error.
Sometimes this doesn't happen to the desire of the
developer. For example the function
socket_read() may suddenly emit an E_WARNING message because the
connection broke unexpectedly. It's common to suppress
the warning with the
@-operator and catch the error code within the
application with the
socket_last_error() function. You may call the
socket_strerror() function with this
error code to retrieve a string describing the error.
See their description for more information.
注: The E_WARNING messages generated by the socket extension are in english though the retrieved error message will appear depending on the current locale (LC_MESSAGES):
Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet
|