Esiste?

Topic Sul Perl.

Moderator: dree

Esiste?

Postby bled on Sun Sep 30, 2007 1:29 pm

Esiste una buona guida sui socket in italiano?
bled
Newbies
 
Posts: 40
Joined: Tue Jul 31, 2007 1:29 pm

Esiste?

Sponsor

Sponsor


Postby xero on Sun Sep 30, 2007 9:07 pm

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 :D
ciau
Last edited by xero on Sun Oct 07, 2007 3:17 pm, edited 1 time in total.
Image
Stallman nostro, che sei in America, sia santificato il tuo pc, venga la tua licenza, sia fatta la tua volontà così in C++ come in Python, dacci oggi il nostro codice quotidiano, rimetti a noi i nostri pacchetti come noi rimettiamo alle nostre dipendenze e non ci indurre a Vista ma liberaci da Microsoft, Amen
xero
Newbies
 
Posts: 15
Joined: Fri Jan 26, 2007 1:48 pm

Postby sh0i on Tue Oct 02, 2007 7:09 pm

good! ;)
one word: Legalize!
User avatar
sh0i
Newbies
 
Posts: 43
Joined: Wed Jun 06, 2007 2:01 am
Location: Sono seduto perchè?! :\

Postby bled on Thu Oct 04, 2007 4:00 pm

esistono guide magari dettagliate sull le varie librerie?
bled
Newbies
 
Posts: 40
Joined: Tue Jul 31, 2007 1:29 pm

Postby _Andy_ on Thu Oct 04, 2007 7:04 pm

trovi tutto quello che ti serve su cpan ;)
User avatar
_Andy_
Variabile
 
Posts: 258
Joined: Thu Jun 15, 2006 8:00 pm
Location: 127.0.0.1


Return to Perl

Who is online

Users browsing this forum: No registered users and 1 guest