Page 1 of 1

PHP Script und 2 while schleifen...

Posted: 2004-02-25 16:28
by cyberline
Hallo, ich habe ein Script welches in 2 Funktionen enthält:

Die eine baut eine Verbindung zu einem IRC Server auf und horcht per while schleife an der Verbindung...

Die andere stellt einen socket zur Verbindung, der von draussen kontaktiert werden kann, auch hier horcht eine while schleife auf verbindungen.

Jede Funktion einzeln aufgerufen funktioniert einwandfrei, aber beide zusammen in einem script geht nicht weil die schleifen ja nicht beendet sind.

jemand eine idee das beides löpt ?

Re: PHP Script und 2 while schleifen...

Posted: 2004-02-25 18:56
by niklas_
Vielleicht sagst du uns, was du überhaupt machen willst....

Re: PHP Script und 2 while schleifen...

Posted: 2004-02-25 19:33
by 丨-丨4rp3r
was noch besser wäre, du postest vielleicht mal den Code :wink:

Re: PHP Script und 2 while schleifen...

Posted: 2004-02-25 20:13
by cyberline
function a() {
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_nonblock($_ock);
socket_bind($sock, '127.0.0.1', '6666');
socket_listen($sock);
while(true) {
$buff = socket_accept($sock);
$read = socket_read($buff, 1024);
socket_write($buff, "Hallo");
}
return 0;
}

function b() {
$fp = pfsockopen(<SERVER>, <PORT>, $errno, $errstr, 10);
socket_set_timeout($fp, 500);
while($buffer = fgets($fp, 4096)) {
echo $buffer;
}
return 1;
}

wenn ich nun funktion a ODER b aufrufe, gibt es kein problem, sobald ich aber

a();
b();

versuche, wird nur funktion a ausgeführt, weil ja die schleife auf dem socket endlos ist, es sei denn es käme ein fehler.

ich habe schon ein if(!a()) b(); versucht, aber auch das schlägt fehl :(

Re: PHP Script und 2 while schleifen...

Posted: 2004-02-25 20:36
by krispin
mehrere Funktion auf einmal sind NIE und nimmer möglich, nicht in PHP und auch nicht in C. Da der PC nunmal dumm ist, und in wirklichkeit immer nur ienen Prozess auf einmal bearbeiten kann. Ich schlage vor, du lässt in einer großen schleife beide Funktionen abwechselnd prüfen!

Es sei denn, du hast mehre Prozessoren, dann sieht das schon wiedert etwas anders aus. Abba es kann nie pro Programm mehrere Sachen auf einmal aus geführt werden. - Kleiner exkurs in PCanisch

MfG
Krispin

Re: PHP Script und 2 while schleifen...

Posted: 2004-02-26 09:45
by suntzu
Hi,

einzige Möglichkeit: Beides in eine Schleife oder Multithreading, dann entfällt aber wohl PHP.

Re: PHP Script und 2 while schleifen...

Posted: 2004-02-26 09:47
by cyberline
hmm, in einer schleife auf 2 sockets hören fällt wohl aus.
Die kiste hat 4 Prozessoren aber aufteilen unter PHP dürfte auch ausfallen oder ? :)