This file is indexed.

/usr/share/doc/libwx-perl/examples/socket/wxSocketServer.pl is in libwx-perl 1:0.9922-2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/usr/bin/perl -w
#############################################################################
## Name:        samples/socket/wxSocketServer.pl
## Purpose:     wxSocketServer minimal demo
## Author:      Graciliano M. P.
## Created:     06/02/2003
## RCS-ID:      $Id: wxSocketServer.pl 2057 2007-06-18 23:03:00Z mbarbon $
## Copyright:   (c) 2003-2004 Graciliano M. P.
## Licence:     This program is free software; you can redistribute it and/or
##              modify it under the same terms as Perl itself
#############################################################################

BEGIN {
  eval {
    require blib;
    'blib'->import;
  }
}

use Wx;
use Wx::Socket ;

package MyApp;

  use vars qw(@ISA);
  @ISA=qw(Wx::App);

sub OnInit {
  my( $this ) = @_;

  my( $frame ) = MyFrame->new( "wxSocket Minimal demo",
			       Wx::Point->new( 50, 50 ),
			       Wx::Size->new( 450, 350 )
                             );

  $this->SetTopWindow( $frame );
  $frame->Show( 1 );

  1;
}

package MyFrame;
  use vars qw(@ISA);
  @ISA=qw(Wx::Frame);

  use Wx qw(:sizer wxTE_MULTILINE );
  use Wx::Event qw(EVT_BUTTON) ;
  
  use Wx qw(wxDefaultPosition wxDefaultSize wxDEFAULT wxNORMAL);

sub new {
  my( $class ) = shift;
  my( $this ) = $class->SUPER::new( undef, -1, $_[0], $_[1], $_[2] );

  my $top_s = Wx::BoxSizer->new( wxVERTICAL );
  
  my $text = Wx::TextCtrl->new( $this , -1, '' , wxDefaultPosition, [200,-1] , wxTE_MULTILINE );
  my $button = Wx::Button->new( $this, -1, 'Start' );
  
  $this->{TEXT} = $text ;

  $top_s->Add( $text , 1, wxGROW|wxALL, 5 );
  $top_s->Add( $button , 0, wxGROW|wxALL, 0);

  $this->SetSizer( $top_s );
  $this->SetAutoLayout( 1 );

  EVT_BUTTON( $this, $button, \&OnConnect );
  
  return( $this ) ;

  $this;
}


#############
# ONCONNECT #
#############

sub OnConnect {
  my $this = shift ;

  use Wx qw(:socket) ;
  use Wx::Event qw(EVT_SOCKET_CONNECTION) ;

  my $sock = Wx::SocketServer->new('localhost',5050,wxSOCKET_WAITALL);
  
  EVT_SOCKET_CONNECTION($this , $sock , \&onConnect ) ;
  
  my $stat = $sock->Ok ;
  $this->{TEXT}->AppendText("Ok: <$stat>\n") ;
  if (! $stat) { return ;}

}

sub onConnect {
  my ( $sock , $this , $evt ) = @_ ;

  my $client = $sock->Accept(0) ;
 
  my @lcaddr = $client->GetLocal ;
  my @praddr = $client->GetPeer ;

  $this->{TEXT}->AppendText("-------------------------\n") ;    
  $this->{TEXT}->AppendText("New Client\n") ;
  $this->{TEXT}->AppendText("  Local: <@lcaddr>\n") ;
  $this->{TEXT}->AppendText("  Peer: <@praddr>\n") ;

  $client->Write("This is a data test!\n") ;
  $client->Close ;
  $client->Destroy ;
  $this->{TEXT}->AppendText("\n-------------------------(closed)\n") ;
}

package main;

  my( $app ) = MyApp->new();
  $app->MainLoop();

exit ;

# Local variables: #
# mode: cperl #
# End: #