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
-
$_baseConfigprotectedBase configuration settings for the socket connectionarray -
$_connectionErrorsprotectedarrayUsed to capture connection warnings which can happen when there are SSL errors for example.
-
$_encryptMethodsprotectedContains all the encryption methods availablearray -
$configpublicConfiguration settings for the socket connectionarray -
$connectedpublicThis boolean contains the current state of the CakeSocket classboolean -
$connectionpublicReference to socket connection resourceresource -
$descriptionpublicObject descriptionstring -
$encryptedpublicTrue if the socket stream is encrypted after a CakeSocket::enableCrypto() callboolean -
$lastErrorpublicThis 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 Object::__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
$configoptional 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
SocketExceptioncontext()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
$clientOrServeroptional 'client' - Can be one of 'client', 'server'. Default is 'client'.
- boolean
$enableoptional true - Enable or disable encryption. Default is true (enable)
Returns
booleanTrue on success
Throws
InvalidArgumentExceptionWhen an invalid encryption scheme is chosen.
SocketExceptionWhen 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
$lengthoptional 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 Object::__construct got executed)
Parameters
- array
$stateoptional 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
$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.
http://api.cakephp.org/2.8/class-CakeSocket.html