Font
[thread]4284[/thread]

server basteln: problem mit einfachserver

Reader: 1


<< >> 10 entries, 1 page
esskar
 2004-01-23 06:57
#36863 #36863
User since
2003-08-04
7321 articles
ModeratorIn

user image
Code: (dl )
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!
Froschpopo
 2004-01-23 07:04
#36864 #36864
User since
2003-08-15
2653 articles
BenutzerIn
[default_avatar]
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.
renee
 2004-01-23 11:18
#36865 #36865
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Netzwerkprogrammierung mit Perl gibt's bei Terrashop recht günstig (10,95 ¤)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Strat
 2004-01-23 12:37
#36866 #36866
User since
2003-08-04
5246 articles
ModeratorIn
[Homepage] [default_avatar]
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-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Froschpopo
 2004-01-23 06:41
#36867 #36867
User since
2003-08-15
2653 articles
BenutzerIn
[default_avatar]
ich habe einen server gebaut:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/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:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/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?
GH@NDI
 2004-01-23 06:59
#36868 #36868
User since
2003-09-21
16 articles
BenutzerIn
[Homepage] [default_avatar]
Genauso wie du beim Server Dinge an den Client schickst:
Code: (dl )
print $client_socket param('blub');

:)
snarf
 2004-01-23 10:45
#36869 #36869
User since
2003-08-14
77 articles
BenutzerIn
[default_avatar]
[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-
snarf
 2004-01-23 11:42
#36870 #36870
User since
2003-08-14
77 articles
BenutzerIn
[default_avatar]
[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-
Froschpopo
 2004-01-24 06:17
#36871 #36871
User since
2003-08-15
2653 articles
BenutzerIn
[default_avatar]
ich will ja eben unabhängig von apache arbeiten... mache da sjetzt über eine pipe...
Strat
 2004-01-24 14:52
#36872 #36872
User since
2003-08-04
5246 articles
ModeratorIn
[Homepage] [default_avatar]
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
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 10 entries, 1 page



View all threads created 2004-01-23 06:57.