Hallo zusammen, ich hoffe jemand kann uns hier helfen. Wir haben einen Server und einen Client programmiert aber leider funktioniert keinerlei Transaktion zwischen den beiden. Ich hoffe jemand kann uns hier Anhaltspunkte für eine Lösung bieten.
Server:
#! /usr/bin/perl -w
# server0.pl
#--------------------#use strict;
use Socket;
my $port = 7890;
my $proto = getprotobyname('tcp');
socket(SERVER, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
my $paddr = sockaddr_in($port, INADDR_ANY);
bind(SERVER, $paddr) or die "bind: $!";
listen(SERVER,1) or die "listen: $!";
print "SERVER started on port $port\n";
my $client_addr;
while ($client_addr = accept(CLIENT, SERVER))
{
select STDOUT;
my ($client_port, $client_ip) = sockaddr_in($client_addr);
my $client_ipnum = inet_ntoa($client_ip);
my $client_host = gethostbyaddr($client_ip, AF_INET);
print "got a connection from: $client_host\n","[$client_ipnum] \n";
select CLIENT;
$|=1;
print CLIENT "Welcome to the Server";
my $zeile;
while ($zeile = <CLIENT>)
{
print " ~ $zeile \n";
my $antwort;
$antwort = "BLUBB";
print CLIENT $antwort;
print " $antwort ";
}
close CLIENT;
}
Der Client:
use strict;
use Socket;
my $host = 'localhost';
my $port = 7890;
my $proto = getprotobyname('tcp');
my $iaddr = inet_aton($host);
my $paddr = sockaddr_in($port, $iaddr);
socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
connect(SOCKET, $paddr) or die "connect: $!";select SOCKET;
$|=1;
select STDOUT;
#my $pic=Image::Magick->new;
#$pic->Read('gundam2.jpg');
my $erg;
print "connected to $iaddr and $paddr";
while ($erg=<SOCKET>)
{
print ">> $erg \n";
my $eingabe;
print "Eingabe: ";
$eingabe = <STIN>;
print SOCKET " $eingabe ";
}
close SOCKET or die "close: $!";
Mit While-Schleife, ohne While-Schleife etc es will einfach nicht. Beendet man den Server solange der Client connected ist erscheint beim Client interessanterweise die WIllkommensmeldung vom Server ... aber wieso?
Wie gesagt, wäre über Hinweise dankbar.
Vielen Dank!
Datum: 07.04.2008-16:17
