Socket Functions in PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I suspect I'm having problems with socket functions within my PHP application running on Red Hat 2.4.21-4.EL #1/PHP 4.3.2/Apache 2.0.46.

Below is a sample code listing:

================================================================

function sendRequest($strRequest) {
	$parser = NULL;
	$logman = new LogManager();
	
	$resource = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
	$logman->append("Connecting to OLS Server...");
	$socket_conn = socket_connect( $resource, $serverIP, $serverPort );
	if( $socket_conn ) {
$logman->append("Connected to {$serverIP}:{$serverPort}. Sending XML request...");
		socket_write( $resource, $strRequest );
		$logman->append("XML request sent. Waiting for XML response...");
		$document = "";
		$data = socket_read( $resource, 1024 );
		
		while ($data != "") {
			$document .= $data;
			$data = socket_read( $resource, 1024 );
		}
		$logman->append("XML response received.");
		
		$parser = new OlsResponseParser;
		// parse the received document using our parser
		$parser->parse($document);
	}
	
	if ($parser != NULL) {
		return $parser->getOlsResponse();
	}
	
	return $parser;
}

================================================================
The following listing is from the logs I have created...
================================================================

|+-------+---------------------+------------------------------------------------------------+
| LogId | LogDate | LogMessage |
+-------+---------------------+------------------------------------------------------------+
| 37 | 2006-05-03 15:39:28 | /new_userpage_process.php initialized. Creating buffer... | | 38 | 2006-05-03 15:39:28 | Connecting to OLS Server... | | 39 | 2006-05-03 15:39:28 | Connected to (server):(port). Sending XML request... | | 40 | 2006-05-03 15:39:28 | XML request sent. Waiting for XML response... | | 41 | 2006-05-03 15:40:34 | XML response received. | | 42 | 2006-05-03 15:40:34 | Buffering complete. Redirecting to thanks.php?actiontype=2 |
+-------+---------------------+------------------------------------------------------------+

 ================================================================

As you can see, there is a lapse of more than one minutes between LogId's 40 and 41, which is very slow on a production environment. The script above acts as a client to another application server listening on a remote port, running on Java. What the remote application reports is that it receives the connection request, receives the request data, and transmits the response data at the same second, while my application receives the response one minute after the request was sent!

Other implementations in the enterprise using different architectures and technologies/languages do not experience the same issue as my app does.

Please help. Comments, suggestions and thoughts through the group or private mail are deeply appreciated.

Thanks!
--
Oliver John V. Tibi
Software Programmer/Web Application Developer
IAMD Software Solutions
oj@xxxxxxxx
"Live free() or die()."

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux