Dies ist mein bisheriger Client. Also wirklich sehr schlicht gehalten. Aber der wartet ständig auf eingehende Daten, die selten kommen.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/perl -w
use strict;
use IO::Socket;
use IO::File;
use Switch;
use Data::Dumper;
my $peerAddr; # that's the hosts ip-adress
my $peerPort; # that's the hosts port
# the usage is: command ip-addr port
if ($ARGV[0] && $ARGV[1])
{
$peerAddr = $ARGV[0];
$peerPort = $ARGV[1];
}
else
{
die "Usage: $0 target-address portnumber\n";
}
# CREATING THE SOCKET
my $server = new IO::Socket::INET (
PeerAddr => $peerAddr,
PeerPort => $peerPort,
Proto => "tcp",
Type => SOCK_STREAM
) or die "*** Can't connect to server. ($!) ***\n";
my $maxBuffer = 1024;
my $myName;
# CREATING THE FORK
my $pid = fork(); # the fork lets us create two parallel processes
if ($pid == 0) { # when our process is active -> do something
main("start","");
} else { # otherwise -> read out the server's messages
while(1) {
my $nval = $server->recv(my $data, $maxBuffer, 0);
if (defined($nval) && length($data))
{
XMLparse($data);
}
}
}
$server->close();
exit;
Danke sri für das aufwendige Beispiel, bei dem schau ich aber noch nicht ganz durch. Wo werden beim dem Beispiel die Daten übertragen.
Ich muss in meinem Client ein XML-String übertragen. Könntest du oder jemand anders mit 2 Kommentaren die stellen mir nochmals deutlich machen. z.B. #xmlinput bzw. #xmloutput
Danke für eure Mühe.\n\n
<!--EDIT|naich|1084890497-->