php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #18208 create_socket Undefined
Submitted: 2002-07-07 07:56 UTC Modified: 2002-09-09 22:24 UTC
Votes:4
Avg. Score:4.2 ± 0.8
Reproduced:4 of 4 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: fouriedj at telkom dot co dot za Assigned:
Status: No Feedback Package: Sockets related
PHP Version: 4.2.1 OS: RedHat 7.1
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2002-07-07 07:56 UTC] fouriedj at telkom dot co dot za
I have got php-4.2.1 installed on Linux RedHat-7.1. I am trying to write a clent/server based application but cannot seem to get it to work. The function create_socket always comes back with the following error (Undefined function socket_create). I have compiled my source with the option --enable-sockets and if I do a ( php -m) I do see that sockets is available, event if I check in phpinfo() I see that it is enabled. I loocked all over the internet asked a lot of people but still no answer. Please can you help me with this.

Regards
Daniel Fourie

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-07-07 07:59 UTC] derick@php.net
Please provide a short script with which we can reproduce it.

Derick
 [2002-07-08 01:14 UTC] fouriedj at telkom dot co dot za
Here is a script that I am looking at, it is part of the php documentation.

#!/usr/local/bin/php -q
<?php
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 = '192.168.1.53';
$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);
?>

Regards
Daniel Fourie
 [2002-07-10 09:51 UTC] jason@php.net
Are you sure that you are not somehow conflicting with another version of php that is installed on your system. (Redhat 7.1 includes a very early version of 4). If you are positive that the php you are running -m on is the same as the one you compiled, then run the following command(adjust the paths appropriately of course):

nm /usr/local/bin/php | grep socket_create

If you truly have sockets compiled in, you will see the following output:
080bd854 T zif_socket_create
080bc9d4 T zif_socket_create_listen
080c1128 T zif_socket_create_pair

If not, then you are most likely rebuilding different configurations in the same build area. (This can be bad)

If this is the case:
make clean
rm config.cache
./configure --enable-sockets
make

-Jason


 [2002-09-09 22:24 UTC] jason@php.net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.


 [2007-07-15 19:23 UTC] hamishcool3 at yahoo dot co dot uk
I am having the same problem. All you need to do to reproduce the error is

<?php
socket_create();
?>

which ouptuts

Fatal error: Call to undefined function socket_create() in F:\webdocs\test.php on line 2

Is it in a class or something?

Hamish :D
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 19:01:28 2024 UTC