Socket takes a long time to 'finish'

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

 



Hello,

I have a small but somewhat annoying issue.

Whenever I open a socket to another server, the file is read very quickly, but it takes the up to 30 seconds or so to close the connection...

Here is what I do:
  $sever = "server.mit.edu";
  $url = "/link";
  $port = 80;
  $user_agent = $_SERVER['HTTP_USER_AGENT'];
  $server_protocol = $_SERVER['SERVER_PROTOCOL'];

  $valsencoded = "";
  while (list($key,$value) = each ($content))
     $valsencoded .= urlencode($key) . "=" . urlencode($value) ."&";
  $valsencoded = substr($urlencoded,0,-1);

  $content_length = strlen($valsencoded);

  $headers = "POST $url $server_protocol
Content-Type: application/x-www-form-urlencoded
Host: $server
Content-Length: $content_length

";

  // open socket
  $socket = fsockopen($server, $port, $errno, $errstr, 60.0);
  if (!$socket) {
    $error = "ERROR: cannot contact Mailman server";
    return array(false,$error,$error); }

  if ($errstr) {
    $error = "ERROR: fSockOpen Error ($errno): $errstr";
    return array(false,$error,$error); }

  fputs($socket, $headers);  // send headers
  fputs($socket, $urlencoded);  // send post data

  // "tried stream_set_timeout($socket,3)" here

  // get the returned page
  while (!feof($socket))
  {
    $buf = @fgets($socket, 2048);
    $htmlreturned .= $buf;
  }
  fclose($socket);

If I put a debug 'echo "BUF: $buf\n" inside the while loop, I see the returned html from the post show up pretty much immediately, within about a second, maybe less.

However, the process 'stalls' after that for between 15-30 seconds, and then ends correctly.

I have tried to use timeouts, but they did not have any effects (did not really expect them to, but just in case).

My setup is Debian 4.0, php 5.2.0-8+etch7. Unfortunately I don't know the other server OS's/applications.

I found similar questions in posts from 2002 and 2003, but there were no replies (2002-04-30 guido.d.berger and 2003-11-25 thomas weber).

Any ideas greatly appreciated,

Alvar

--
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