PHP Script und 2 while schleifen...

Bash, Shell, PHP, Python, Perl, CGI
cyberline
Posts: 97
Joined: 2003-01-28 10:11
Location: Hürth

PHP Script und 2 while schleifen...

Post 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 ?
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: PHP Script und 2 while schleifen...

Post by niklas_ »

Vielleicht sagst du uns, was du überhaupt machen willst....
丨-丨4rp3r
Posts: 16
Joined: 2003-12-07 15:53

Re: PHP Script und 2 while schleifen...

Post by 丨-丨4rp3r »

was noch besser wäre, du postest vielleicht mal den Code :wink:
cyberline
Posts: 97
Joined: 2003-01-28 10:11
Location: Hürth

Re: PHP Script und 2 while schleifen...

Post 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 :(
krispin
Posts: 216
Joined: 2003-04-14 16:30

Re: PHP Script und 2 while schleifen...

Post 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
suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: PHP Script und 2 while schleifen...

Post by suntzu »

Hi,

einzige Möglichkeit: Beides in eine Schleife oder Multithreading, dann entfällt aber wohl PHP.
cyberline
Posts: 97
Joined: 2003-01-28 10:11
Location: Hürth

Re: PHP Script und 2 while schleifen...

Post 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 ? :)