Wx::Socket man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Wx::Socket(3)	      User Contributed Perl Documentation	 Wx::Socket(3)

NAME
       Wx::Socket - wxSocket* classes

USAGE
	 use Wx qw(:socket) ;
	 use Wx::Event qw(EVT_SOCKET_INPUT EVT_SOCKET_LOST) ;
	 use Wx::Event qw(EVT_SOCKET_CONNECTION) ;

	 ##########
	 # CLIENT #
	 ##########

	 my $sock = Wx::SocketClient->new(wxSOCKET_WAITALL);

	 EVT_SOCKET_INPUT($parent , $sock , \&onInput ) ;
	 EVT_SOCKET_LOST($parent , $sock , \&onClose ) ;

	 $sock->Connect('localhost',5050) ;

	 if (! $sock->IsConnected ) { print "ERROR\n" ;}

	 sub onInput {
	   my ( $sock , $this , $evt ) = @_ ;
	   my $length = 123;
	   my $buffer ;
	   $sock->Read($buffer , 1024 , $length ) ;
	 }

	 ##########
	 # SERVER #
	 ##########

	 my $sock = Wx::SocketServer->new('localhost',5050,wxSOCKET_WAITALL);

	 EVT_SOCKET_CONNECTION($parent , $sock , \&onConnect ) ;

	 if ( !$sock->Ok ) { print "ERROR\n" ;}

	 sub onConnect {
	   my ( $sock , $this , $evt ) = @_ ;
	   my $client = $sock->Accept(0) ;

	   my ($local_host,$local_port) = $client->GetLocal ;
	   my ($peer_host,$peer_port) = $client->GetPeer ;

	   $client->Write("This is a data test!\n") ;

       ... or ...

	   $client->Write( $data , length($data) ) ;

	   $client->Close ;
	 }

METHODS
       All the methods work as in wxWidgets (see the documentation).

       The functions for reading data (Read, ReadMsg, Peek) take 3 arguments,
       like the Perl read() function:

	 ## To read the data into the variable
	 $sock->Read($buffer , 1024) ;

       ... or ...

	 ## To append data at the given offset:
	 $sock->Read($buffer , 1024 , $offset ) ;

       The write functions (Write, WriteMsg, Unread) can be used with 1 or 2
       arguments:

	 $client->Write("This is a data test!\n") ;

	 $client->Write($data , $length) ;

EVENTS
       The events are:

	   EVT_SOCKET
	   EVT_SOCKET_ALL
	   EVT_SOCKET_INPUT
	   EVT_SOCKET_OUTPUT
	   EVT_SOCKET_CONNECTION
	   EVT_SOCKET_LOST

       The EVT_SOCKET works as in wxWidgets, the others are wxPerl extensions.

       Note that EVT_SOCKET events of wxSocketClient and wxSocketServer work
       differently than other event types.

       First you need to set the event handler:

	   $sock->SetEventHandler($handler, $id) ;

       Then you set what types of event you want to receive:

	   ## this select all.
	   $sock->SetNotify(wxSOCKET_INPUT_FLAG|wxSOCKET_OUTPUT_FLAG|
			    wxSOCKET_CONNECTION_FLAG|wxSOCKET_LOST_FLAG) ;

       Enable the event notification:

	   $sock->Notify(1) ;

       And only after this use:

	   ## note that $handler must be the same that was used in
	   ## SetEventHandler
	   EVT_SOCKET($handler, $id , sub{...} )

       To make the events easier to use, all the proccess is automatic, and
       you just use:

	   EVT_SOCKET_INPUT($handler , $socket , sub{...} )
	   EVT_SOCKET_OUTPUT($handler , $socket , sub{...} )
	   EVT_SOCKET_CONNECTION($handler , $socket , sub{...} )
	   EVT_SOCKET_LOST($handler , $socket , sub{...} )

	   ## This is for the events not used yet by the above:
	   EVT_SOCKET_ALL($parent , $socket , sub{...} )

       ** The new way is better to handle more than one socket in the same
       time too.
	  Take a look in the demos.

SEE ALSO
       Wx, The wxWxwindows documentation at <http://www.wxwindows.org/>

AUTHOR
       Graciliano M. P. <gm@virtuasites.com.br>

COPYRIGHT
       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.14.3			  2007-06-18			 Wx::Socket(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net