perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 29
Click for quality!




11.02.2012 / 13:13

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragSocket Client an Modul übergeben
Seitenanfang
Hallo,

nach längerer Abstinenz hab ich mich mal wieder an eine kleine Perl Programmierung herangewagt und probier gerade etwas mit einer Socketkommunikation herum. Da ich das ganze etwas trennen will habe ich für verschiedene Bereiche eigene Module eingebaut.

Und hier ist jetzt gerade das Problem:

Hier mal der Code:
while (($Timeout eq "false") && accept(Client, Server))
{
#Server may run and a connection to a client has been found
Messages::PrintToLog("Client Connected\n");
my $clientHandle = getpeername (Client) or print "Could not identify Client: $!\n";
my ($port, $iaddr) = unpack_sockaddr_in($clientHandle);
my $clientIP = inet_ntoa($iaddr);
Messages::PrintToLog("Client IP: $clientIP \n");


# if there comes no answer from the client for
# $Timeout in Minutes -> Disconnect the client
# Check which branch to go
my $answer = <Client>;# or $answer = "nothing";
if ($answer eq "AdminUserLogin\n")
{
print Client "test";
AdminFunctions::MainCall($clientHandle);
#$Timeout = "true";
}
elsif($answer eq "ShutDown\n")
{
#DEBUG ONLY
$Timeout = "true";
}
Messages::PrintToLog("Got something from the Client: $answer");


Messages::PrintToLog("Closing Client.\n");
close Client;
}

das Problem bezieht sich auf die Zeile:
AdminFunctions::MainCall($clientHandle); ich will den Client irgendwie übergeben, damit ich innerhalb des modules die weitere Kommunikation zwischen dem Client und dem Server abhandeln kann. (wie authorisierung und ähnliches, sprich ich müsste da kommunizieren) Das ganze klappt so aber nicht wirklich.

Also im Modul würde momentan das stehen:
sub MainCall
{
$ClientHandle = shift @_;

Messages::PrintToLog("Admin: MainCall");

print $ClientHandle "Testing";

#my $Answer = <$ClientHandle>;
}

Und das ganze scheint an der Stelle vom print $clientHandle aufzuhängen.

Seht ihr meine Fehler?
Was mache ich falsch?

Danke schon mal für eure Hilfe

Datum: 04.12.2006-10:28

-






-
-