User since
2003-08-04
7321
Artikel
ModeratorIn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
$hostname = "localhost";
use IO::Socket;
$client_socket = new IO::Socket::INET (
PeerAddr => $hostname,
PeerPort => 13,
Proto => 'tcp')|| die "Kein Socket... $!\n";
print $client_socket "HTTP/1.0 /path/index.pl?param1=hallo\n";
print $client_socket "n\n";
$content = <$client_socket>;
$client_socket->close();
print "Content-Type: text/html\n\n";
print $content."\n";
ps: schau dir aber besser mal die Module:
Http::Daemon,
Http::Request
LWP::UserAgent
etcpp. an
außerdem könntest du dir mal wissen zum HTTP Protokol aneigenen!
User since
2003-08-15
2653
Artikel
BenutzerIn
der server liegt aber nicht im bereich vom Apache sondern in meinem Homeverzeichnis! Der Server mit dem text "hallo" funktioniert ja auch...
print $client_socket param('blub'); leider nicht, darauf bin ich auch schon gekommen.
User since
2003-08-04
14371
Artikel
ModeratorIn
Netzwerkprogrammierung mit Perl gibt's bei
Terrashop recht günstig (10,95 ¤)
User since
2003-08-04
5246
Artikel
ModeratorIn
schau dir vielleicht auch mal
How to Write a Chat Server an, von dem habe ich damals viel gelernt, und es sind einige sehr interessante ideen drinnen\n\n
<!--EDIT|Strat|1074854276-->
User since
2003-08-15
2653
Artikel
BenutzerIn
ich habe einen server gebaut:
#!/usr/bin/perl
use IO::Socket;
my $server_socket = new IO::Socket::INET (
LocalPort => 13,
Listen => $SOMAXCONN,
Proto => 'tcp',
Reuse => 1)|| die "$!\n";
print "Server laeuft, zum Beenden Strg+C eingeben oder Prozess killen\n";
while (my $client_socket = $server_socket->accept() ) {
print $client_socket "hallo";
}
der Client dafür sieht so aus:
#!/usr/bin/perl
$hostname = "localhost";
use IO::Socket;
$client_socket = new IO::Socket::INET (
PeerAddr => $hostname,
PeerPort => 13,
Proto => 'tcp')|| die "Kein Socket... $!\n";
$content = <$client_socket>;
$client_socket->close();
print "Content-Type: text/html\n\n";
print $content."\n";
Meine Frage ist: Wie kann ich Parameter an den server übermitteln? Ich möchte gerne aus dem client heraus, einen wert an den server übergeben. Der Client ist ein CGI-Programm und hat somit zugriff auf param() von CGI.pm. Nun will ich einen param() an den Server übergeben. WIe soll das funktionieren?
User since
2003-09-21
16
Artikel
BenutzerIn
Genauso wie du beim Server Dinge an den Client schickst:
print $client_socket param('blub');
:)
User since
2003-08-14
77
Artikel
BenutzerIn
[quote=Froschpopo,23.01.2004, 06:04]der server liegt aber nicht im bereich vom Apache sondern in meinem Homeverzeichnis! Der Server mit dem text "hallo" funktioniert ja auch...
print $client_socket param('blub'); leider nicht, darauf bin ich auch schon gekommen.[/quote]
... Apache / Homeverzeichnis - muss man jetzt nicht verstehen, oder?
Aber ganz generell funktioniert die Methode von GH@NDI natürlich schon, nur sollte der Server dazu auch vom Socket lesen - und dazu nicht das CGI-Modul verwenden (das kann ja gar nicht klappen: das Environment besteht doch schon beim Start des "Servers" und wird durch eine Anfrage des Clients nicht geändert!).
Du verwechselst da verschiedene Thematiken, bzw wirfst sie einfach in einen Hut: Serverkommunikation und HTTP (oder andere Protokolle) sind einfach verschiedene Schuhe.
Sammle mal über Google verschiedene Quellen zur Socket-Programmierung oder gönn dir folgendes Buch : Lincoln D. Stein, "Netzwerkprogrammierung mit Perl", Addison-Wesley, ISBN 3-8273-1968-4 ... lohnt sich wirklich!
ReadU, -snarf-
User since
2003-08-14
77
Artikel
BenutzerIn
[quote=renee,23.01.2004, 10:18]Netzwerkprogrammierung mit Perl gibt's bei
Terrashop recht günstig (10,95 ¤)[/quote]
... ein echter Hammerpreis!!! Der fällt unter die Rubrik "Die best-angelegten 10 Euro gleich nach Kauf eines Dudens" !!!
Schade, ich hab vor ein paar Monaten noch den vollen Preis bezahlen dürfen - shit.
ReadU, -snarf-
User since
2003-08-15
2653
Artikel
BenutzerIn
ich will ja eben unabhängig von apache arbeiten... mache da sjetzt über eine pipe...
User since
2003-08-04
5246
Artikel
ModeratorIn
der von mir gepostete link hat nichts mit apache zu tun...
kannst dir auch mal den chatwebserver auf meiner hp unter Downloads anschauen, der arbeitet mit HTTP::Daemon