   #PHP Manual Socket functions socket_create_pair socket_get_option

   PHP Manual
   Prev  Next
   ______________________________________________________________________

                                 socket_create

   (PHP 4 >= 4.1.0)
   socket_create -- Create a socket (endpoint for communication)

Description

   resource socket_create ( int domain, int type, int protocol)

   Creates and returns a socket resource, also referred to as an endpoint
   of communication. A typical network connection is made up of 2
   sockets, one performing the role of the client, and another performing
   the role of the server.

   The domain parameter specifies the protocol family to be used by the
   socket.

   Table 1. Available address/protocol families
   Domain Description
   AF_INET IPv4 Internet based protocols. TCP and UDP are common
   protocols of this protocol family.
   AF_INET6 IPv6 Internet based protocols. TCP and UDP are common
   protocols of this protocol family. Support added in PHP 5.0.0.
   AF_UNIX Local communication protocol family. High efficiency and low
   overhead make it a great form of IPC (Interprocess Communication).

   The type parameter selects the type of communication to be used by the
   socket.

   Table 2. Available socket types
   Type Description
   SOCK_STREAM Provides sequenced, reliable, full-duplex,
   connection-based byte streams. An out-of-band data transmission
   mechanism may be supported. The TCP protocol is based on this socket
   type.
   SOCK_DGRAM Supports datagrams (connectionless, unreliable messages of
   a fixed maximum length). The UDP protocol is based on this socket
   type.
   SOCK_SEQPACKET Provides a sequenced, reliable, two-way
   connection-based data transmission path for datagrams of fixed maximum
   length; a consumer is required to read an entire packet with each read
   call.
   SOCK_RAW Provides raw network protocol access. This special type of
   socket can be used to manually construct any type of protocol. A
   common use for this socket type is to perform ICMP requests (like
   ping, traceroute, etc).
   SOCK_RDM Provides a reliable datagram layer that does not guarantee
   ordering. This is most likely not implemented on your operating
   system.

   The protocol parameter sets the specific protocol within the specified
   domain to be used when communicating on the returned socket. The
   proper value can be retrieved by name by using getprotobyname(). If
   the desired protocol is TCP, or UDP the corresponding constants
   SOL_TCP, and SOL_UDP can also be used.

   Table 3. Common protocols
   Name Description
   icmp The Internet Control Message Protocol is used primarily by
   gateways and hosts to report errors in datagram communication. The
   "ping" command (present in most modern operating systems) is an
   example application of ICMP.
   udp The User Datagram Protocol is a connectionless, unreliable,
   protocol with fixed record lengths. Due to these aspects, UDP requires
   a minimum amount of protocol overhead.
   tcp The Transmission Control Protocol is a reliable, connection based,
   stream oriented, full duplex protocol. TCP guarantees that all data
   packets will be received in the order in which they were sent. If any
   packet is somehow lost during communication, TCP will automatically
   retransmit the packet until the destination host acknowledges that
   packet. For reliability and performance reasons, the TCP
   implementation itself decides the appropriate octet boundaries of the
   underlying datagram communication layer. Therefore, TCP applications
   must allow for the possibility of partial record transmission.

   socket_create() Returns a socket resource on success, or FALSE on
   error. The actual error code can be retrieved by calling
   socket_last_error(). This error code may be passed to
   socket_strerror() to get a textual explanation of the error.

     Note: If an invalid domain or type is given, socket_create()
     defaults to AF_INET and SOCK_STREAM respectively and additionally
     emits an E_WARNING message.

   See also socket_accept(), socket_bind(), socket_connect(),
   socket_listen(), socket_last_error(), and socket_strerror().
   ______________________________________________________________________

   Prev               Home              Next
   socket_create_pair  Up  socket_get_option
