
- PHP - Home
- PHP - Roadmap
- PHP - Introduction
- PHP - Installation
- PHP - History
- PHP - Features
- PHP - Syntax
- PHP - Hello World
- PHP - Comments
- PHP - Variables
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ and $$ Variables
- PHP - Constants
- PHP - Magic Constants
- PHP - Data Types
- PHP - Type Casting
- PHP - Type Juggling
- PHP - Strings
- PHP - Boolean
- PHP - Integers
- PHP - Files & I/O
- PHP - Maths Functions
- PHP - Heredoc & Nowdoc
- PHP - Compound Types
- PHP - File Include
- PHP - Date & Time
- PHP - Scalar Type Declarations
- PHP - Return Type Declarations
- PHP - Operators
- PHP - Arithmetic Operators
- PHP - Comparison Operators
- PHP - Logical Operators
- PHP - Assignment Operators
- PHP - String Operators
- PHP - Array Operators
- PHP - Conditional Operators
- PHP - Spread Operator
- PHP - Null Coalescing Operator
- PHP - Spaceship Operator
- PHP Control Statements
- PHP - Decision Making
- PHP - If…Else Statement
- PHP - Switch Statement
- PHP - Loop Types
- PHP - For Loop
- PHP - Foreach Loop
- PHP - While Loop
- PHP - Do…While Loop
- PHP - Break Statement
- PHP - Continue Statement
- PHP Arrays
- PHP - Arrays
- PHP - Indexed Array
- PHP - Associative Array
- PHP - Multidimensional Array
- PHP - Array Functions
- PHP - Constant Arrays
- PHP Functions
- PHP - Functions
- PHP - Function Parameters
- PHP - Call by value
- PHP - Call by Reference
- PHP - Default Arguments
- PHP - Named Arguments
- PHP - Variable Arguments
- PHP - Returning Values
- PHP - Passing Functions
- PHP - Recursive Functions
- PHP - Type Hints
- PHP - Variable Scope
- PHP - Strict Typing
- PHP - Anonymous Functions
- PHP - Arrow Functions
- PHP - Variable Functions
- PHP - Local Variables
- PHP - Global Variables
- PHP Superglobals
- PHP - Superglobals
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP File Handling
- PHP - File Handling
- PHP - Open File
- PHP - Read File
- PHP - Write File
- PHP - File Existence
- PHP - Download File
- PHP - Copy File
- PHP - Append File
- PHP - Delete File
- PHP - Handle CSV File
- PHP - File Permissions
- PHP - Create Directory
- PHP - Listing Files
- Object Oriented PHP
- PHP - Object Oriented Programming
- PHP - Classes and Objects
- PHP - Constructor and Destructor
- PHP - Access Modifiers
- PHP - Inheritance
- PHP - Class Constants
- PHP - Abstract Classes
- PHP - Interfaces
- PHP - Traits
- PHP - Static Methods
- PHP - Static Properties
- PHP - Namespaces
- PHP - Object Iteration
- PHP - Encapsulation
- PHP - Final Keyword
- PHP - Overloading
- PHP - Cloning Objects
- PHP - Anonymous Classes
- PHP Web Development
- PHP - Web Concepts
- PHP - Form Handling
- PHP - Form Validation
- PHP - Form Email/URL
- PHP - Complete Form
- PHP - File Inclusion
- PHP - GET & POST
- PHP - File Uploading
- PHP - Cookies
- PHP - Sessions
- PHP - Session Options
- PHP - Sending Emails
- PHP - Sanitize Input
- PHP - Post-Redirect-Get (PRG)
- PHP - Flash Messages
- PHP AJAX
- PHP - AJAX Introduction
- PHP - AJAX Search
- PHP - AJAX XML Parser
- PHP - AJAX Auto Complete Search
- PHP - AJAX RSS Feed Example
- PHP XML
- PHP - XML Introduction
- PHP - Simple XML Parser
- PHP - SAX Parser Example
- PHP - DOM Parser Example
- PHP Login Example
- PHP - Login Example
- PHP - Facebook Login
- PHP - Paypal Integration
- PHP - MySQL Login
- PHP Advanced
- PHP - MySQL
- PHP.INI File Configuration
- PHP - Array Destructuring
- PHP - Coding Standard
- PHP - Regular Expression
- PHP - Error Handling
- PHP - Try…Catch
- PHP - Bugs Debugging
- PHP - For C Developers
- PHP - For PERL Developers
- PHP - Frameworks
- PHP - Core PHP vs Frame Works
- PHP - Design Patterns
- PHP - Filters
- PHP - JSON
- PHP - Exceptions
- PHP - Special Types
- PHP - Hashing
- PHP - Encryption
- PHP - is_null() Function
- PHP - System Calls
- PHP - HTTP Authentication
- PHP - Swapping Variables
- PHP - Closure::call()
- PHP - Filtered unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - Expectations
- PHP - Use Statement
- PHP - Integer Division
- PHP - Deprecated Features
- PHP - Removed Extensions & SAPIs
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI Process
- PHP - PDO Extension
- PHP - Built-In Functions
PHP Network socket_set_timeout() Function
The PHP Network socket_set_timeout() function is used to specify how long a socket connection can wait before terminating. It's an alias for the stream_set_timeout() method, which works with stream resources. This function is useful for dealing with sockets, such as connecting to a server or exchanging data. It ensures that the program does not hang indefinitely if the connection takes too long.
For example, if a server takes a long time to answer, you can set a timeout to stop waiting after a predetermined amount of seconds. This helps your application run more smoothly. The socket_set_timeout method is present in PHP versions ranging from 4 to 8. It supports network tasks such as downloading files or talking with servers. You can mention the timeout value in seconds and microseconds. This gives you control over how long your program should wait.
Syntax
Below is the syntax of the PHP Network socket_set_timeout() function −
bool socket_set_timeout(resource $stream, int $seconds, int $microseconds = 0)
Parameters
Here are the parameters of the socket_set_timeout() function −
$stream − (Required) The socket or stream resource you want to set the timeout for.
$seconds − (Required) The number of seconds to wait before timing out.
$microseconds − (Optional) Additional time in microseconds (1 second = 1,000,000 microseconds).
Return Value
The socket_set_timeout() function returns TRUE if the timeout is set successfully. And returns FALSE if there is an error while setting the timeout.
PHP Version
First introduced in core PHP 4, the socket_set_timeout() function continues to function easily in PHP 5, PHP 7, and PHP 8.
Example 1
Here is the basic example of the PHP Network socket_set_timeout() function. In this example a socket is created to connect to a server. The timeout is set to 5 seconds. If the server does not respond within this time range, the connection will be terminated.
<?php // Create a socket connection to the server $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // Connect to the server socket_connect($socket, "127.0.0.1", 80); // Set the timeout to 5 seconds socket_set_timeout($socket, 5); // Send some data to the server socket_write($socket, "GET / HTTP/1.1\r\n"); // Close the socket socket_close($socket); ?>
Output
Here is the outcome of the following code −
socket_create(): Unable to create socket [Address already in use]
Example 2
In the below PHP code we will use the socket_set_timeout() function and a socket connects to the server and waits for data for two seconds. If no data is received during the timeout period, it shows the message "Socket timed out".
<?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, "127.0.0.1", 80); // Set a timeout of 2 seconds socket_set_timeout($socket, 2); $data = socket_read($socket, 1024); if ($data === false) { echo "Socket timed out.\n"; } else { echo "Data received: $data\n"; } socket_close($socket); ?>
Output
This will generate the below output −
Socket timed out.
Example 3
In this example, a loop makes three attempts to read data from the connection, each with a one-second timeout. If a timeout occurs, it shows the number of tries. If data is received, the loop ends and the results are printed. The socket is closed at the end.
<?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, "127.0.0.1", 80); // Set a 1-second timeout socket_set_timeout($socket, 1); $attempts = 0; $maxAttempts = 3; while ($attempts < $maxAttempts) { $data = socket_read($socket, 1024); if ($data === false) { echo "Attempt $attempts: Timeout occurred\n"; } else { echo "Data received: $data\n"; break; } $attempts++; } socket_close($socket); ?>
Output
This will create the below output −
Attempt 0: Timeout occurred Attempt 1: Timeout occurred Attempt 2: Timeout occurred