socket makes browser hang...
Posted on
16th Feb 2014 07:03 pm by
admin
I have a socket server, and I am having a problem at the moment...
A browser sends a http header request to the server, but... some browsers send one request for one file, and others want 2. For example, Google Chrome asks for two parts: The headers, and the post data.
Whereas Firefox sends it all at once.
Chrome Part 1:
Code: POST /postdata.php HTTP/1.1
Host: localhost:3333
User-Agent: Some Chrome string here
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
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://localhost:3333/postdata.php
Chrome Part 2:
Code: ------WebKitFormBoundaryHigb2TwanNRf4WQK
Content-Disposition: form-data; name="name"
ryan
------WebKitFormBoundaryHigb2TwanNRf4WQK
Content-Disposition: form-data; name="comment"
hello
------WebKitFormBoundaryHigb2TwanNRf4WQK
Content-Disposition: form-data; name="myFile"; filename="test.txt"
Content-Type: text/plain
hello! This is a test document!
Line 2
Line 3
Line 5
Line 6
End File!
------WebKitFormBoundaryHigb2TwanNRf4WQK
Content-Disposition: form-data; name="submit"
Post It!
------WebKitFormBoundaryHigb2TwanNRf4WQK--
Firefox Whole thing:
Code: POST /postdata.php HTTP/1.1
Host: localhost:3333
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
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://localhost:3333/postdata.php
Content-Type: multipart/form-data; boundary=---------------------------491299511942
Content-Length: 566
-----------------------------491299511942
Content-Disposition: form-data; name="name"
ryan
-----------------------------491299511942
Content-Disposition: form-data; name="comment"
adfafqa
-----------------------------491299511942
Content-Disposition: form-data; name="myFile"; filename="test.txt"
Content-Type: text/plain
hello! This is a test document!
Line 2
Line 3
Line 5
Line 6
End File!
-----------------------------491299511942
Content-Disposition: form-data; name="submit"
Now the problem is that since firefox sends it once, my code makes Firefox hang because I have two socket_recv() one for the headers, and one for the post data, where the second socket_recv() just sits and waits but nothing is sent to it. In Chrome this works just fine, because data is send at two different times (headers and post data).
I don't really want to write code that checks a browser to see what the browser is and do something according the browser type, so is there a better way then what I have to get the data no matter what browser the user is using, and the code doesn't hang if the browser only sends headers once?
socket_recv($client, $headers, $max_post_size, 0);
if(preg_match("~^POST~", $headers)){
socket_recv($client, $post, $max_post_size, 0);
}else{
$post = '';
}
No comments posted yet
Your Answer:
Login to answer
324
29
Other forums
Remove directories not empty
hi,
i have an array that contains some names (1,4,6,56...). Every integer is a name of a folder.<
adding 0 to numbers
Hey guys i need to create a 00001 number in a loop. Is there a better way of forcing a 5 digit numbe
php email checker
I am having alot of trouble finding info on how to do these email things. I need to do the following
Find current logon time
Hi,
in my sql script i want to query and find out the logon time of the current session.
<
how to make database item unique
Hey guys,
is it possible to do this:
I have the database item $title being pulled for
Checking if a process is running (problems including psapi.dll i think...)
Ok, so all I'm trying to do is check if a program is running...
I've found out that I nee
need help in update query
i create a form for update. there are 8 columns in my mysql table. on my main page all the data is r
From Header Showing 'Unkown' In Hotmail? Why?
Code: $to = $row_GetID['email_addr'].',sales@mywebaddress.co.uk';
$subject = 'Thank you for you
Encrypt php code?
Is it possible to encrypt php code in files,
so that it displays a load of unreadable characters
help with variable
I've got a problem, i want to echo some images depending on the $id, however for me to get that id i