Thread TCP Client - Socket lesen und schliessen (29 answers)
Opened by snarf at 2004-08-18 19:50

Gast Gast
 2004-08-18 19:08
#37533 #37533
Hallo,
ich versuche mich gerade daran, einen TCP Client zu schreiben. Funktioniert auch einigermassen, nur habe ich das Problem, dass ich aus der "Socket lesen" Schleife nicht mehr herauskomme. Was ich mache, eine Binärdatei einlesen und an den Server schicken und danach die Antwort des Servers darstellen, nur da bleibt das Programm in der Schleife hängen.

Habt Ihr vielleicht eine Idee wie ich das abfangen kann?

Danke
Reinhard

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
34
use strict;
use Config;
use IO::Socket::INET;

my $SocketHandle;
my $buf;
my $binFile  = "<e:/test.bin";
my $Status;

unless (@ARGV == 2) { die "Usage: GetStatus.pl remotehostname port" }

$SocketHandle = IO::Socket::INET->new(PeerAddr =>  $ARGV[0],
                                     PeerPort =>  $ARGV[1],
                                     Proto    =>  "tcp",
                                     Timeout  =>  10,
                                     Type     =>  SOCK_STREAM) or die "cannot connect: $!\n";
$SocketHandle->autoflush();

open(FileHandle, $binFile);
binmode(FileHandle);

while (read(FileHandle, $buf, 28))
{
   print $SocketHandle $buf;
}

$|=1;
while (read ($SocketHandle,$Status,1))
{
print($Status);
}

close FileHandle;
close $SocketHandle;

View full thread TCP Client - Socket lesen und schliessen