Non lo so .-., io ti posso riassumere sommicapi come funzionano così che puoi fare qualcosa, ma sono semplici a livello base,faccio esempi e li commento dopo
- Code: Select all
use IO::Socket;
$sock=IO::Socket::INET->new(
Proto=>"tcp",
PeerPort=>"831",
PeerAddr=>"127.0.0.1"
) or die "Errore: $!";
for(1..10){
print $sock "sono il client e sto comunicando con te, server\n";
}
close($sock);
IO::Socket è il modulo per i socket senza di quello non fai nulla;
$sock è la variabile che useremo come handler per il socket (tipo come i file fai open HANDLER,"file"; print HANDLER "qualcosa";)
IO::Socket::INET->new( crea una nuova socket con i parametri che ora spiego:
Proto=>"tcp", indica che si usa il protocollo tcp
PeerPort)>"831", indica la porta alla quale ci si deve connettere
PeerAddr=>"127.0.0." indica l'ip al quale ci si deve connettere
or die "Errore: $!"; se ci sono errori, printa l'errore e esce dallo script
for(1..10){ è un ciclo che viene ripetuto per 10 volte
print $sock "..."; scrivi al socket il testo che vuoi (quella porta di quell'indirizzo)
close($sock); chiude il socket
il server:
- Code: Select all
use IO::Socket;
$sock=IO::Socket::INET->new(
Proto=>"tcp",
PeerPort=>"831"
) or die "Errore: $!";
$sock->accept($csock); #non ne sono sicuro
while(<c$sock>){
print "il client ha mandato: $_\n";
}
close($sock);
close($csock);
}
Stessi parametri di prima per creare il socket, a aprte che ometti l'indirizzo ip visto che sei il server, questo fa si che lo script si mette in ascolto di una connessione invece di effettuarne una,
$sock->accept($csock); #non ne sono sicuro - accetta connessioni da un eventuale client
while(<$sock>){ un ciclo che dura finchè il client manda cose
print "... $_"; printa um nessaggio e printa cosa ha ricevuto dal client
e close sock come prima
Questo è un esempio banale, ovviamente puoi mandare messaggi dal server al client e riceverne dal client nello stesso modo.
quindi ammesso che crei il socket nella variabile $sock:
per mandare un messaggio fai: print $sock "messaggio";
per riceverlo fai: $ricevi=<$sock>;
credo di essere stato chiaro

se hai problemi chiedi
ciau