ID:               16877
 Comment by:       info at tentoday dot com
 Reported By:      webmaster at red-sub-tech dot ws
 Status:           No Feedback
 Bug Type:         Sockets related
 Operating System: Windows 2000 Profesional
 PHP Version:      4.2.0
 New Comment:

This problem is still available. Currently testing on Windows XP
professional SP2. Is there any workaround available? Currently the
sockets are just not usable on Windows XP. I haven't tested on Windows
2003 but expect the same. Version used is: PHP 5.2.0.

Thanks for information!


Previous Comments:
------------------------------------------------------------------------

[2005-07-09 22:40:32] firebuddy007 at ameritech dot net

ive got one system with xp home, and one with xp pro, and socket_read
only reads one character on BOTH systems
its rather frustrating

------------------------------------------------------------------------

[2002-07-15 09:37:47] administrator at zinious dot com

Looks like a bug in the code.

I'm using Windows 2000 Server (same OS family) and am reading multiple
bytes of text at one read.

------------------------------------------------------------------------

[2002-06-05 01:00:07] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------

[2002-05-04 19:06:00] [EMAIL PROTECTED]

Please try with CVS HEAD and report back. But do *not* rely on the
manuals sample script, they're outdated.

------------------------------------------------------------------------

[2002-04-27 15:07:18] webmaster at red-sub-tech dot ws

Note this script was taken DIRECTLY from the PHP Manual (which you guys
have yet to update with the new socket fixes). And I used this in
Windows with a batch file (only one line on the batch file:
@c:\PHP\php-cli.exe -q c:\php\server.php )

Script:

error_reporting (E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit (0);

/* Turn on implicit output flushing so we see what we're getting
 * as it comes in. */
ob_implicit_flush ();

$address = 'xxx.xxx.x.xxx;
$port = 10000;

if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) < 0) {
    echo "socket_create() failed: reason: " . socket_strerror ($sock) .
"\n";
}

if (($ret = socket_bind ($sock, $address, $port)) < 0) {
    echo "socket_bind() failed: reason: " . socket_strerror ($ret) .
"\n";
}

if (($ret = socket_listen ($sock, 5)) < 0) {
    echo "socket_listen() failed: reason: " . socket_strerror ($ret) .
"\n";
}

do {
    if (($msgsock = socket_accept($sock)) < 0) {
        echo "socket_accept() failed: reason: " . socket_strerror
($msgsock) . "\n";
        break;
    }
    /* Send instructions. */
    $msg = "\nWelcome to the PHP Test Server. \n" .
        "To quit, type 'quit'. To shut down the server type
'shutdown'.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (FALSE === ($buf = socket_read ($msgsock, 2048))) {
            echo "socket_read() failed: reason: " . socket_strerror
($ret) . "\n";
            break 2;
        }
        if (!$buf = trim ($buf)) {
            continue;
        }
        if ($buf == 'quit') {
            break;
        }
        if ($buf == 'shutdown') {
            socket_close ($msgsock);
            break 2;
        }
        $talkback = "PHP: You said '$buf'.\n";
        socket_write ($msgsock, $talkback, strlen ($talkback));
        echo "$buf\n";
    } while (true);
    socket_close ($msgsock);
} while (true);

socket_close ($sock);

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/16877

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

Reply via email to