summaryrefslogtreecommitdiffstats
path: root/PerlQt/examples/network/httpd/httpd.pl
diff options
context:
space:
mode:
Diffstat (limited to 'PerlQt/examples/network/httpd/httpd.pl')
-rw-r--r--PerlQt/examples/network/httpd/httpd.pl140
1 files changed, 0 insertions, 140 deletions
diff --git a/PerlQt/examples/network/httpd/httpd.pl b/PerlQt/examples/network/httpd/httpd.pl
deleted file mode 100644
index a9aa0fd..0000000
--- a/PerlQt/examples/network/httpd/httpd.pl
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/perl -w
-
-## This program is based on an example program for TQt. It
-## may be used, distributed and modified without limitation.
-##
-## Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
-
-
-# When a new client connects, the server constructs a TQt::Socket and all
-# communication with the client is done over this Socket object. TQt::Socket
-# works asynchronously - this means that all the communication is done
-# through the two slots readClient() and discardClient().
-
-package HttpDaemon;
-
-use TQt;
-use TQt::isa qw(TQt::ServerSocket);
-use TQt::signals
- newConnect => [],
- endConnect => [],
- wroteToClient => [];
-use TQt::slots
- readClient => [],
- discardClient => [];
-use TQt::attributes qw(
- sockets
-);
-
-sub NEW
-{
- shift->SUPER::NEW(8080, 1, $_[0]);
- if( !this->ok() )
- {
- die "Failed to bind to port 8080\n";
- }
- sockets = {};
-}
-
-sub newConnection
-{
- my $s = TQt::Socket( this );
- this->connect( $s, TQT_SIGNAL 'readyRead()', this, TQT_SLOT 'readClient()' );
- this->connect( $s, TQT_SIGNAL 'delayedCloseFinished()', this, TQT_SLOT 'discardClient()' );
- $s->setSocket( shift );
- sockets->{ $s } = $s;
- emit newConnect();
-}
-
-sub readClient
-{
- # This slot is called when the client sent data to the server. The
- # server looks if it was a get request and sends a very simple HTML
- # document back.
- my $s = sender();
- if ( $s->canReadLine() )
- {
- my @tokens = split( /\s\s*/, $s->readLine() );
- if ( $tokens[0] eq "GET" )
- {
- my $string = "HTTP/1.0 200 Ok\n\rContent-Type: text/html; charset=\"utf-8\"\n\r".
- "\n\r<h1>Nothing to see here</h1>\n";
- $s->writeBlock($string, length($string));
- $s->close();
- emit wroteToClient();
- }
- }
-}
-
-sub discardClient
-{
- my $s = sender();
- sockets->{$s} = 0;
- emit endConnect();
-}
-
-1;
-
-
-# HttpInfo provides a simple graphical user interface to the server and shows
-# the actions of the server.
-
-package HttpInfo;
-
-use TQt;
-use TQt::isa qw(TQt::VBox);
-use TQt::slots
- newConnect => [],
- endConnect => [],
- wroteToClient => [];
-use TQt::attributes qw(
- httpd
- infoText
-);
-
-use HttpDaemon;
-
-sub NEW
-{
- shift->SUPER::NEW(@_);
- httpd = HttpDaemon( this );
- my $port = httpd->port();
- my $itext = "This is a small httpd example.\n".
- "You can connect with your\n".
- "web browser to port $port\n";
- my $lb = Label( $itext, this );
- $lb->setAlignment( &AlignHCenter );
- infoText = TextView( this );
- my $quit = PushButton( "quit" , this );
- this->connect( httpd, TQT_SIGNAL 'newConnect()', TQT_SLOT 'newConnect()' );
- this->connect( httpd, TQT_SIGNAL 'endConnect()', TQT_SLOT 'endConnect()' );
- this->connect( httpd, TQT_SIGNAL 'wroteToClient()', TQT_SLOT 'wroteToClient()' );
- this->connect( $quit, TQT_SIGNAL 'pressed()', TQt::app(), TQT_SLOT 'quit()' );
-}
-
-sub newConnect
-{
- infoText->append( "New connection" );
-}
-
-sub endConnect
-{
- infoText->append( "Connection closed\n\n" );
-}
-
-sub wroteToClient
-{
- infoText->append( "Wrote to client" );
-}
-
-1;
-
-package main;
-use TQt;
-use HttpInfo;
-
-my $app = TQt::Application(\@ARGV);
-my $info = HttpInfo;
-$app->setMainWidget($info);
-$info->show;
-exit $app->exec;