There two via: 1) C language style, 2)using a module.
1) ##example client
use Socket; ##export costants
socket(SK,PF_INET,SOCK_STREAM,getprotobyname('tcp')) || die"$!\n";
###declaration: SK is a name gived at the socket; PF_INET is a costant:
socket internet; SOCK_STREAM is a costant:
## type of "flux" data(stream,for examople for tcp; datagram for example
for udp).
$dest=sockaddr_in($port,inet_aton($host)); ##where $host is in dot or
symbolic notation
connect(SK,$dest) || die"$!\n";
##now you can print or read on the socket like a file.
##print
select SK;
$|=1;
print "HELLO\n";
select STDOUT;
##read
while(<SK>){
print"$_\n"; ###read from socket and print on STDOUT
}
close(SK);
###################################
##example 1b) server
use Socket; ##export costants
socket(SK,PF_INET,SOCK_STREAM,getprotobyname('tcp')) || die"$!\n";
$serv=sockaddr_in($port,INADDR_ANY)); ### INADDR_ANY is a costant: call
the local IP.
### there are others costants: INADDR_BROADCAST,
INADDR_LOOPBACK,INADDR_NONE.
bind(NEW,$serv) || die"$!\n"; ## open a new socket descriptor
listen(NEW,$num); ## $num is num of connection max in wait state.
for(;;){
accept(NEW,SK); ### accept the connecton. The function wait the
connection request from a client.
##
## now you can write and read like a file on NEW descriptor socket-
close(NEW); ##end of connection from the client
}
close (SK);
## if you want you can use the fork for have a concorrent server(another
mail !!!!).
2) exaple client with the module.
use IO::Socket;
$socket=IO::Socket::INET->new(PeerAddr =>$host, PeerPort=>80,
Proto=>"TCP") || die"$!\n";
print $socket "GET / HTTP/1.0\r\n\r\n";
while(<$socket>){
print"$_\n";
}
close($socket);
2b) server with module
use IO::Socket;
$socket=IO::Socket::INET->new(LocalAddr =>$your_ip, LocalPort=>80,
Proto=>"TCP",Listen=>5) || die"$!\n";
##Do the socket,bind and liste function !!!
##Listen is like the $num above.
for(;;){
$new=$socket->accept();
##
## you can read and write on the $new descriptor like a file.
close($new); ##and
}
close($socket);
Walter
>How can I use sockets in Perl?
>
>
>
>
>
>
>
>
>
>
>
>
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]