Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

wx::socket(3pm) [debian man page]

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

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 " ;} 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 " ;} 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! ") ; ... 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! ") ; $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.2 2007-06-18 Wx::Socket(3pm)

Check Out this Related Man Page

sctp_peeloff(3SOCKET)					     Sockets Library Functions					     sctp_peeloff(3SOCKET)

NAME
sctp_peeloff - branch off existing association from a one-to-many SCTP socket to create a one-to-one STP socket SYNOPSIS
cc [ flag... ] file... -lsocket -lnsl -lsctp [ library... ] #include <sys/types.h> #include <sys/socket.h> #include <netinet/sctp.h> int sctp_peeloff(int sock, sctp_assoc_t id); DESCRIPTION
The sctp_peeloff() function branches off an existing association from a one-to-many style SCTP socket into a separate socket file descrip- tor. The resulting branched-off socket is a one-to-one style SCTP socket and is confined to operations allowed on a one-to-one style SCTP socket. The sock argument is a one-to-many socket. The association specified by the id argument is branched off sock. RETURN VALUES
Upon successful completion, the sctp_peeloff() function returns the file descriptor that references the branched-off socket. The function returns -1 if an error occurs. ERRORS
The sctp_peeloff() function fails under the following conditions. EOPTNOTSUPP The sock argument is not a one-to-many style SCTP socket. EINVAL The id is 0 or greater than the maximum number of associations for sock. EMFILE Failure to create a new user file descriptor or file structure. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |Safe | +-----------------------------+-----------------------------+ SEE ALSO
in.h(3HEAD), libsctp(3LIB), socket(3SOCKET), sctp(7P) SunOS 5.11 05 Mar 2004 sctp_peeloff(3SOCKET)
Man Page