Class CakeSocket
CakePHP network socket connection class.
Core base class for network communication.
Direct Subclasses
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/Network/CakeSocket.php
Properties summary
-
$_baseConfig
protectedBase configuration settings for the socket connectionarray
-
$_connectionErrors
protectedarray
Used to capture connection warnings which can happen when there are SSL errors for example.
-
$_encryptMethods
protectedContains all the encryption methods availablearray
-
$config
publicConfiguration settings for the socket connectionarray
-
$connected
publicThis boolean contains the current state of the CakeSocket classboolean
-
$connection
publicReference to socket connection resourceresource
-
$description
publicCakeSocket descriptionstring
-
$encrypted
publicTrue if the socket stream is encrypted after a CakeSocket::enableCrypto() callboolean
-
$lastError
publicThis variable contains an array with the last error number (num) and string (str)array
Method Summary
- __construct() publicConstructor.
- __destruct() publicDestructor, used to disconnect from current connection.
- _connectionErrorHandler() protected
socket_stream_client() does not populate errNum, or $errStr when there are connection errors, as in the case of SSL verification failure.
- _setSslContext() protectedConfigure the SSL context options.
- address() publicGets the IP address of the current connection.
- addresses() publicGets all IP addresses associated with the current connection.
- connect() publicConnects the socket to the given host and port.
- context() publicGets the connection context.
- disconnect() publicDisconnects the socket from the current connection.
- enableCrypto() publicEncrypts current stream socket, using one of the defined encryption methods.
- host() publicGets the host name of the current connection.
- lastError() publicGets the last error as a string.
- read() public
Reads data from the socket. Returns false if no data is available or no connection could be established.
- reset() publicResets the state of this Socket instance to it's initial state (before CakeObject::__construct got executed)
- setLastError() publicSets the last error.
- write() publicWrites data to the socket.
Method Detail
__construct()source public
__construct( array $config array() )
Constructor.
Parameters
- array
$config
optional array() - Socket configuration, which will be merged with the base configuration
See
CakeSocket::$_baseConfig_connectionErrorHandler()source protected
_connectionErrorHandler( integer $code , string $message )
socket_stream_client() does not populate errNum, or $errStr when there are connection errors, as in the case of SSL verification failure.
Instead we need to handle those errors manually.
Parameters
- integer
$code
- Code.
- string
$message
- Message.
_setSslContext()source protected
_setSslContext( string $host )
Configure the SSL context options.
Parameters
- string
$host
- The host name being connected to.
address()source public
address( )
Gets the IP address of the current connection.
Returns
stringIP address
addresses()source public
addresses( )
Gets all IP addresses associated with the current connection.
Returns
arrayIP addresses
connect()source public
connect( )
Connects the socket to the given host and port.
Returns
booleanSuccess
Throws
SocketException
context()source public
context( )
Gets the connection context.
Returns
null|arrayNull when there is no connection, an array when there is.
disconnect()source public
disconnect( )
Disconnects the socket from the current connection.
Returns
booleanSuccess
enableCrypto()source public
enableCrypto( string $type , string $clientOrServer 'client' , boolean $enable true )
Encrypts current stream socket, using one of the defined encryption methods.
Parameters
- string
$type
- Type which can be one of 'sslv2', 'sslv3', 'sslv23' or 'tls'.
- string
$clientOrServer
optional 'client' - Can be one of 'client', 'server'. Default is 'client'.
- boolean
$enable
optional true - Enable or disable encryption. Default is true (enable)
Returns
booleanTrue on success
Throws
InvalidArgumentExceptionWhen an invalid encryption scheme is chosen.
SocketException
When attempting to enable SSL/TLS fails.
See
stream_socket_enable_cryptolastError()source public
lastError( )
Gets the last error as a string.
Returns
string|nullLast error
read()source public
read( integer $length 1024 )
Reads data from the socket. Returns false if no data is available or no connection could be established.
Parameters
- integer
$length
optional 1024 - Optional buffer length to read; defaults to 1024
Returns
mixedSocket data
reset()source public
reset( array $state null )
Resets the state of this Socket instance to it's initial state (before CakeObject::__construct got executed)
Parameters
- array
$state
optional null - Array with key and values to reset
Returns
booleanTrue on success
setLastError()source public
setLastError( integer $errNum , string $errStr )
Sets the last error.
Parameters
- integer
$errNum
- Error code
- string
$errStr
- Error string
write()source public
write( string $data )
Writes data to the socket.
Parameters
- string
$data
- The data to write to the socket
Returns
booleanSuccess
Properties detail
$_baseConfigsource
protected array
Base configuration settings for the socket connection
array( 'persistent' => false, 'host' => 'localhost', 'protocol' => 'tcp', 'port' => 80, 'timeout' => 30 )
$_connectionErrorssource
protected array
Used to capture connection warnings which can happen when there are SSL errors for example.
array()
$_encryptMethodssource
protected array
Contains all the encryption methods available
array( // @codingStandardsIgnoreStart 'sslv2_client' => STREAM_CRYPTO_METHOD_SSLv2_CLIENT, 'sslv3_client' => STREAM_CRYPTO_METHOD_SSLv3_CLIENT, 'sslv23_client' => STREAM_CRYPTO_METHOD_SSLv23_CLIENT, 'tls_client' => STREAM_CRYPTO_METHOD_TLS_CLIENT, 'sslv2_server' => STREAM_CRYPTO_METHOD_SSLv2_SERVER, 'sslv3_server' => STREAM_CRYPTO_METHOD_SSLv3_SERVER, 'sslv23_server' => STREAM_CRYPTO_METHOD_SSLv23_SERVER, 'tls_server' => STREAM_CRYPTO_METHOD_TLS_SERVER // @codingStandardsIgnoreEnd )
$connectedsource
public boolean
This boolean contains the current state of the CakeSocket class
false
$descriptionsource
public string
CakeSocket description
'Remote DataSource Network Socket Interface'
$encryptedsource
public boolean
True if the socket stream is encrypted after a CakeSocket::enableCrypto() call
false
$lastErrorsource
public array
This variable contains an array with the last error number (num) and string (str)
array()
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.9/class-CakeSocket.html