Bug #16680 Updated: socket_read() does not have the described behaviour ...

2002-05-05 Thread mfischer

 ID:   16680
 Updated by:   [EMAIL PROTECTED]
 Reported By:  [EMAIL PROTECTED]
-Status:   Feedback
+Status:   Closed
 Bug Type: Sockets related
 Operating System: Windows 9x
 PHP Version:  4.2.0
 New Comment:

No.

I'm closing this as this is your client which has the habbit to send
every single character on its own over the line.

As php.net/socket_select states: "If you read/write to a socket returns
in the arrays be aware that they do not necessarily read/write the full
amount of data you have requested. Be prepared to even only be able to
read/write a single byte."

And, I tried the same thing you did, also with clients from a linux
system which only sent the data after I entered return. Just be
prepared to received single characters.


Previous Comments:


[2002-05-05 08:29:30] [EMAIL PROTECTED]

i ran your script and connected with teraterm pro from my win2000 box
(local):
i typed 'hello world' ans then disconnected.
this is the output i got:

D:\Apache\htdocs>d:\php\php-cli -q -f d:\apache\htdocs\testje.php
string(1) "h"
string(1) "e"
string(1) "l"
string(1) "l"
string(1) "o"
string(1) " "
string(1) "w"
string(1) "o"
string(1) "r"
string(1) "l"
string(1) "d"
 "ring(2) "

i guess this should have been a single line, right?

i couldn't test it at this moment with a connection from my linux box
since i'm in a NAT'ed network.
i will try later though.



[2002-05-04 19:37:46] [EMAIL PROTECTED]

How did you test sending data to your php script which received the
data? I've noticed that the telnet version shipped with windows does by
default transmit every character immidiately over the line (hence
resulting only in single characters sent). If I telnet from a linux
host to the script running under win32 I recevied the whole data only
after I pressed return.

I've tested it with this simple script:




[2002-05-04 19:07:35] [EMAIL PROTECTED]

Please try with CVS HEAD and report back.



[2002-05-04 13:19:44] [EMAIL PROTECTED]

i have exactly the same problem with win2000.
it closes the connection immidiatly after the first received char.

that little scriptlet upthere seems to be be a way around this.

is this a bug or is it suppost to work like this?



[2002-04-18 09:57:00] [EMAIL PROTECTED]

In the documentation, it's written that socket_read() reads data from
the socket until a \n, \t, \0 or until the end of the buffer.
But under win32 it reads only 1 char.

This would be fixed.

Just use instead :
$buf="";
while (substr($buf,-1)!="\n") {
  $buf.=socket_read($socket,1);
}

I've put 1 here, but you can write 16777216 it'll continue to give back
only 1 char.




-- 
Edit this bug report at http://bugs.php.net/?id=16680&edit=1




Bug #16680 Updated: socket_read() does not have the described behaviour ...

2002-05-05 Thread gilles

 ID:   16680
 Updated by:   [EMAIL PROTECTED]
 Reported By:  [EMAIL PROTECTED]
 Status:   Feedback
 Bug Type: Sockets related
 Operating System: Windows 9x
 PHP Version:  4.2.0
 New Comment:

i ran your script and connected with teraterm pro from my win2000 box
(local):
i typed 'hello world' ans then disconnected.
this is the output i got:

D:\Apache\htdocs>d:\php\php-cli -q -f d:\apache\htdocs\testje.php
string(1) "h"
string(1) "e"
string(1) "l"
string(1) "l"
string(1) "o"
string(1) " "
string(1) "w"
string(1) "o"
string(1) "r"
string(1) "l"
string(1) "d"
 "ring(2) "

i guess this should have been a single line, right?

i couldn't test it at this moment with a connection from my linux box
since i'm in a NAT'ed network.
i will try later though.


Previous Comments:


[2002-05-04 19:37:46] [EMAIL PROTECTED]

How did you test sending data to your php script which received the
data? I've noticed that the telnet version shipped with windows does by
default transmit every character immidiately over the line (hence
resulting only in single characters sent). If I telnet from a linux
host to the script running under win32 I recevied the whole data only
after I pressed return.

I've tested it with this simple script:




[2002-05-04 19:07:35] [EMAIL PROTECTED]

Please try with CVS HEAD and report back.



[2002-05-04 13:19:44] [EMAIL PROTECTED]

i have exactly the same problem with win2000.
it closes the connection immidiatly after the first received char.

that little scriptlet upthere seems to be be a way around this.

is this a bug or is it suppost to work like this?



[2002-04-18 09:57:00] [EMAIL PROTECTED]

In the documentation, it's written that socket_read() reads data from
the socket until a \n, \t, \0 or until the end of the buffer.
But under win32 it reads only 1 char.

This would be fixed.

Just use instead :
$buf="";
while (substr($buf,-1)!="\n") {
  $buf.=socket_read($socket,1);
}

I've put 1 here, but you can write 16777216 it'll continue to give back
only 1 char.




-- 
Edit this bug report at http://bugs.php.net/?id=16680&edit=1




Bug #16680 Updated: socket_read() does not have the described behaviour ...

2002-05-04 Thread mfischer

 ID:   16680
 Updated by:   [EMAIL PROTECTED]
 Reported By:  [EMAIL PROTECTED]
 Status:   Feedback
 Bug Type: Sockets related
 Operating System: Windows 9x
 PHP Version:  4.2.0
 New Comment:

How did you test sending data to your php script which received the
data? I've noticed that the telnet version shipped with windows does by
default transmit every character immidiately over the line (hence
resulting only in single characters sent). If I telnet from a linux
host to the script running under win32 I recevied the whole data only
after I pressed return.

I've tested it with this simple script:



Previous Comments:


[2002-05-04 19:07:35] [EMAIL PROTECTED]

Please try with CVS HEAD and report back.



[2002-05-04 13:19:44] [EMAIL PROTECTED]

i have exactly the same problem with win2000.
it closes the connection immidiatly after the first received char.

that little scriptlet upthere seems to be be a way around this.

is this a bug or is it suppost to work like this?



[2002-04-18 09:57:00] [EMAIL PROTECTED]

In the documentation, it's written that socket_read() reads data from
the socket until a \n, \t, \0 or until the end of the buffer.
But under win32 it reads only 1 char.

This would be fixed.

Just use instead :
$buf="";
while (substr($buf,-1)!="\n") {
  $buf.=socket_read($socket,1);
}

I've put 1 here, but you can write 16777216 it'll continue to give back
only 1 char.




-- 
Edit this bug report at http://bugs.php.net/?id=16680&edit=1




Bug #16680 Updated: socket_read() does not have the described behaviour ...

2002-05-04 Thread mfischer

 ID:   16680
 Updated by:   [EMAIL PROTECTED]
 Reported By:  [EMAIL PROTECTED]
-Status:   Open
+Status:   Feedback
 Bug Type: Sockets related
 Operating System: Windows 9x
 PHP Version:  4.2.0
 New Comment:

Please try with CVS HEAD and report back.


Previous Comments:


[2002-05-04 13:19:44] [EMAIL PROTECTED]

i have exactly the same problem with win2000.
it closes the connection immidiatly after the first received char.

that little scriptlet upthere seems to be be a way around this.

is this a bug or is it suppost to work like this?



[2002-04-18 09:57:00] [EMAIL PROTECTED]

In the documentation, it's written that socket_read() reads data from
the socket until a \n, \t, \0 or until the end of the buffer.
But under win32 it reads only 1 char.

This would be fixed.

Just use instead :
$buf="";
while (substr($buf,-1)!="\n") {
  $buf.=socket_read($socket,1);
}

I've put 1 here, but you can write 16777216 it'll continue to give back
only 1 char.




-- 
Edit this bug report at http://bugs.php.net/?id=16680&edit=1




Bug #16680 Updated: socket_read() does not have the described behaviour ...

2002-05-04 Thread gilles

 ID:   16680
 Updated by:   [EMAIL PROTECTED]
 Reported By:  [EMAIL PROTECTED]
 Status:   Open
 Bug Type: Sockets related
 Operating System: Windows 9x
 PHP Version:  4.2.0
 New Comment:

i have exactly the same problem with win2000.
it closes the connection immidiatly after the first received char.

that little scriptlet upthere seems to be be a way around this.

is this a bug or is it suppost to work like this?


Previous Comments:


[2002-04-18 09:57:00] [EMAIL PROTECTED]

In the documentation, it's written that socket_read() reads data from
the socket until a \n, \t, \0 or until the end of the buffer.
But under win32 it reads only 1 char.

This would be fixed.

Just use instead :
$buf="";
while (substr($buf,-1)!="\n") {
  $buf.=socket_read($socket,1);
}

I've put 1 here, but you can write 16777216 it'll continue to give back
only 1 char.




-- 
Edit this bug report at http://bugs.php.net/?id=16680&edit=1