Hallo,
folgende Sache: Ich habe ein Script bei meinem Provider laufen, dass ziemlich tricky zu einem Java-Applet eine Socket-Connection aufbaut. Aber offenbar isses zu tricky, denn mein Provider mag es überhauptnicht (Das Script soll angeblich *alle* freien IP-Adressen dauerhaft belegen), und deshalb möchte ich Euch bitten, einmal einen Blick draufzuwerfen, ob es nicht eine Provider-schonende Variante davon gibt:
sub CreateSocketConnection
{
#--- PARAMETER ---
$ThePort = $\_[0];
print ("...");
my $port = shift || $ThePort;
my $proto = getprotobyname ('tcp');
if (socket (Server, PF\_INET, SOCK\_STREAM, $proto))
{
if (bind (Server, sockaddr\_in ($port, INADDR\_ANY)))
{
if (listen (Server, 1))
{
$SIG{CHLD} = \&REAPER;
my $paddr;
$paddr = accept (Client, Server);
my ($is\_port, $is\_iaddr) = sockaddr\_in ($paddr);
my $name = gethostbyaddr ($is\_iaddr, AF\_INET);
select (Client); $|=1; #--- Autoflush on ! --- UMLEITUNG aller Ausgaben auf Client !!!! ---
my $EndFlag = 0;
my $Line = "";
while (($EndFlag == 0) && ($Ok == $True))
{
$Line = readline \*Client;
$Line =~ s/[\t\n\r\f]//g; #--- Umbrüche entfernen ---
if (length ($Line) \> 0)
{
if ($Line =~ /shutdown\_shutdown\_shutdown/i)
{
$EndFlag = 1;
}
else
{
HandleIncomingCGIParamStr ($Line);
}
}
}
print Client "\n\nConnection shuting down ...\n";
print Client "\f"; #--- Datenende-Kennung anhängen ---
close Client;
}
}
}
select (STDOUT);
if ($!)
{
print "\n\nConnection ERROR: " . $! . "\n";
}
else
{
print "\n\nConnection closed\n";
}
print ("...");
}
na, wie kann man das verbessern ?
Grüße Ralf