Jump to content

Recommended Posts

For the past couple of weeks I've been writing a webserver in PHP.  Everything has been going relativeley smooth, until recently when I noticed that sometimes the HTTP request is getting truncated:

 

POST /test.php HTTP/1.1
Host: www.patrickmizer.com:9191
User-Agent: Mozilla/5.0 (X11; you; Linux i686 (x86_64); en-US; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.patrickmizer.com:9191/test.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 28

height=0&width=0&submitted=1

 

POST /test.php HTTP/1.1
Host: www.patrickmizer.com:9191
User-Agent: Mozilla/5.0 (X11; you; Linux i686 (x86_64); en-US; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.patrickmizer.com:9191/test.php

 

I've tracked the problem down to the socket_read function.  I'm calling it from within a socket wrapper class that I've written.  The code is berlow:

 

<?php
// ...
    public function readBinary($size = 4096)
    {
	if (false === ($inputl = socket_read($this->socket, $size, PHP_BINARY_READ))) {
		throw new Exception("Could not read data from socket.");
		return false;
	}
	return trim($input); 	
    }
// ...
?>

 

I think what is happening is that all of the data hasn't been received by the socket before it is read from the socket_read function.  I say this, because if I add a sleep(1) call as the first line in the readBinary method this problem goes away.  Obviously this isn't a viable solution, any suggestions?

 

Thanks,

 

Patrick

 

P.S.

 

The problem can be seen here (on the POST): http://www.patrickmizer.com:9191/test.php

Link to comment
https://forums.phpfreaks.com/topic/52162-interesting-socket_read-problem/
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.