Thread Probleme mit Pipe (3 answers)
Opened by naich at 2004-06-08 20:08

naich
 2004-06-08 20:08
#83188 #83188
User since
2004-05-17
8 Artikel
BenutzerIn
[default_avatar]
Hey,

ich habe ein Problem bei der Verwendung von Pipes.

In meinem Client werden 2 Prozesse erzeugt.
Der erste Prozess wartet auf XML-Daten von einem Server. Diese werden dann dem zweiten Prozess mittels einer Pipe zur Verfügung gestellt, der sie dann auch verarbeiten soll.
$data_write enthält den korrekten vom Server kommenden XML-String.

Das Problem:
$data_read enthält alle XML-Strings, die jemals durch die Pipe geschickt wurden.

Woran könnte es liegen?


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
pipe (READ,WRITE);
WRITE->autoflush(1);

my $pid = fork();

if ($pid==0) {
close(WRITE);
fcntl(READ, F_SETFL(), O_NONBLOCK);
main("start","");

while (1) {
my $data_read = "";
if (defined(sysread(READ, $data_read,$maxBuffer))) {
chomp($data_read);
print "$data_read";
XMLparse($data_read);
}
}
}
else {
close(READ);

while (1) {
my $data_write = "";
my $nval = $server->recv($data_write, $maxBuffer, 0);
if (defined($nval) && length($data_write)) {
print "$data_write";
print WRITE $data_write,"\n";
}
}
}
close($server);
exit(0);
\n\n

<!--EDIT|naich|1086711093-->

View full thread Probleme mit Pipe