phpbar.de logo

Mailinglisten-Archive

[php] false or false or was ...

[php] false or false or was ...

Sebastian Mendel lists at sebastianmendel.de
Son Dez 19 21:41:22 CET 2004


Norbert Pfeiffer schrieb:
> Hi,
> 
> zuerst das Beispiel:
> <?php
> echo '<B>PHP</B>['.PHP_VERSION."]\n";
> $sock = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
> if ($sock) {
>     echo '<B>$sock</B>['.$sock."]\n";
>     $so = @socket_set_option($sock, SOL_SOCKET,
>           SO_RCVTIMEO, array('sec'=>3, 'usec'=>0));
>     echo '<B>$so</B>['.(($so) ? $so :
>     'Err: '.trim(socket_strerror(socket_last_error())))."]\n";
>     $bk = @socket_set_block($sock);
>     echo '<B>$bk</B>['.(($bk) ? $bk :
>     'Err: '.trim(socket_strerror(socket_last_error())))."]\n";
>     $cl = @socket_close($sock);
>     echo '<B>$cl</B>['.(($cl) ? $cl :
>     'Err: '.trim(socket_strerror(socket_last_error())))."]\n";
> } else {
>     echo 'socket_create() fehlgeschlagen: '.
>          socket_strerror(socket_last_error())."\n";
> }
> ?>
> und die Anzeige:
> <copy>
> PHP[4.3.8]
> $sock[Resource id #2]
> $so[1]
> $bk[Err: Der Vorgang wurde ausgefuehrt.]
> $cl[Err: Der Vorgang wurde ausgefuehrt.]
> </copy>
> 
> dann das Problem:
> laut Manual gibt
> socket_set_option - bool also TRUE or FALSE
> socket_set_block  - bool also TRUE or FALSE
> socket_close      - void zurueck
> 
> Das harmoniert jedoch nicht mit der Anzeige ...
> Und ueberhaupt, woher kommt die deutsche Errormeldung ?

mhm, also das was ich sehe passt soweit ...

void socket_close()

$cl = socket_close();

das ergibt also eine uninitialisierte Variable, also NULL und NULL wird 
zu FALSE (type casting)

Die Fehlermeldung bleibt natürlich auch die selbe, "Der Vorgang wurde 
ausgefuehrt." kommt nicht zweimal sondern wird nur zweimal ausgegeben.

Das die Meldung Deutsch ist wird wohl am System liegen.

Ansonsten, hast du das unter Windows probiert?

http://de2.php.net/manual/en/ref.sockets.php

"Note:  The E_WARNING messages generated by the socket extension are in 
English though the retrieved error message will appear depending on the 
current locale (LC_MESSAGES):"


Außerdem:

"This extension is EXPERIMENTAL. The behaviour of this extension -- 
including the names of its functions and anything else documented about 
this extension -- may change without notice in a future release of PHP. 
Use this extension at your own risk."


also sind die Aussagen im Handbuch mit Vorsicht zu genießen.



-- 
Sebastian Mendel

www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com
www.sf.net/projects/phpdatetime        www.sf.net/projects/phptimesheet

php::bar PHP Wiki   -   Listenarchive