Ana səhifə

Guida allo Scripting su mirc


Yüklə 378.5 Kb.
səhifə13/14
tarix25.06.2016
ölçüsü378.5 Kb.
1   ...   6   7   8   9   10   11   12   13   14

Socket


I socket li possiamo immaginare come delle subconnessioni che ci permetteno di mandare e ricevere dati. Per Affrontare questa sezione occorre avere una profonda conoscienza dei remote, dei popups e degli aliases.


Sockets identifier
$sock(name,N)

Questi identificatori ci restituiscono delle informazioni circa i socket che stiamo adoperando


Proprietà: name, port, ip, status, sent, rcvd, sq, rq, ls, lr, mark, type, saddr, sport, to, wserr, wsmsg
.name ci ritorna il nome che abbiamo assegnato a un socket

.sent e .rcvd ritornano il numero di byte spediti e rcvd quelli ricevuti

.sq e .rq ritornano il numero di queued dei byti nella spinta dell'onda e ricevono rispettivamente buffer

.ls e .lr ritornano il numero di secondi dal collegamento ultimo spedito e durano info ricevuto

.mark è un utente deposito area max. 512 byti

.type ritorna il tipo di socket, TCP o UDP

.saddr e .sport ritornano l'indirizzo del mittente dei dati UDP ricevuti

.to ritorna il numero di secondi la presa di corrente è stata aperta

.wserr ritorna l'ultimo codice di errore del winsock che si è verificato su un socket

.wsmsg ritorna il testo dell'ultimo msg d'errore del winsock

$sockname

$sockname è il nome che diamo alla connessione per identificarla.


$sockerr

$sockerr questo identificatore è consigliabile utilizzarlo dopo un evento o un comando per vedere se si è verificato un errore


$sockbr

$sockbr è messo dal numero di bytes letti da /sockread command. È usato per controllare qualsiasi informazioni vengano lette dal buffer (veda sotto per più info).


$portfree(N)

Ci ritorna $true se la porta specificata è aperta, altrimenti $false.


Comandi socket
Gli elenchi di informazioni e l'insieme dei comandi e degli eventi sono di facile referenza.
/socklisten [port]

The /socklisten mette una determinata porta in ascolto.


on 1:socklisten:name:commands

Questo evento scatta quando qualcuno prova a connettersi a una vostra determinata porta. Se tu vuoi accettare la connessione devi usare il comando /sockaccept altrimenti la connessione viene automaticamente chiusa.


/sockaccept

/sockaccept Accetta la connessione corrente e gli assegna un nome per identificarla.


/sockrename

The /sockrename Assegna un nuovo nome a una connessione esistente.


Aprire e chiudere le connessioni.
/sockopen

Il comando /sockopen esegue una connessione a all'indirizzo specificato.


on 1:sockopen:name:commands

L'evento si verifica dopo aver eseguito il comando /sockopen con successo e si verifica la connessione.


/sockclose

Il comando /sockclose chiude la connessione della quale avete specificato il nome.


on 1:sockclose:name:commands

Quest'evento si verifica quando viene chiusa una connessione dai remote.


Mandare informazioni
/sockwrite [-tnb] [numbytes]

Il comando /sockwrite ti permette di inviare delle informazioni su una connessione stabilita. mIRC tenta di spedirle il più velocemente possibile. Una volta che ha terminato di mandare quelle info, si verifica l'evento on sockwrite e se tu ne hai bisogno puoi mandare altre informazioni.


Se specifichi

-t, esso forza mirc a mandare del testo che comincia con &, viene interpretato come del normale testo.

-n collega un CRLF alla riga che è trasmessa se non è un &binvar e se già non ha un CRLF.

-b indica che state specificando il valore dei numbytes che è il numero di byte che desiderate venga trasmesso.


Se si verifica un errore con il comando /sockwrite, esso setta il valore dell'errore che ti ritorna utilizzando $sock().wserr
on 1:sockwrite:name:commands

Quest'evento si verifica quando mirc ha finito di inviare le precedenti informazioni

Leggere delle informazioni
on 1:sockread:name:commands

L'evento sockread scatta quando ci sono dei dati di una connessione precedentemente effettuata che devono esser letti. Puoi leggere questi dati con il comando /sockread


/sockread [-fn] [numbytes] <%var|&binvar>

Il comando /sockread legge i byte e li assegna a una variabile.


Se specifichi una variable, essa ritorna la linea di testo del buffer.
Se tu specifichi una &binvar e quindi [numbytes] of info is read into the binary variable. altrimenti il default è 4096 bytes.
Se usi il prefisso -f con una varibile, costringe mirc ha riempire la variabile con il testo letto dal buffer.
-n permette di leggere una linea terminante con CRLF. Se la linea entrante non contiene CRLF, non verranno letti dati dalla &binvar, tuttavia se specifichi -f, li costringi ad essere letti (come quando viene letta in %var).
Esempio:

Questo codice ti mostra la meccanica dell'evento sockread. Il socket è già stato aperto e ha ricevuto informazioni, così l'evento si è verificato. Il nome del socket è testing.


on 1:sockread:testing:{

if ($sockerr > 0) return

:nextread

sockread %temp

if ($sockbr == 0) return

if (%temp == $null) %temp = -

echo 4 %temp

goto nextread

}

Se $sockerr è maggiore di zero vuol dire che si è verificato un errore e mirc chiude automaticamente i sock.


sockread %temp legge una riga terminata CRLF di testo e la memorizza in %temp.
Se %temp è $null allora vuol dire che la linea è costituita solo da CRLF che mIRC ha tolto automaticamente dalla linea, così la linea è vuota. In questo caso, Ho posto %temp uguale a un trattino, ma tu puoi settare quello che preferisci.
Successivamente la variabile ci ritorna nello status.

UDP Sockets

UDP è un protocollo di collegamento. Tu puoi inviare delle informzaioni tramite UDP senza doverti connetterti prima.
/sockudp [-bntk] [port] [
[numbytes] [text|%var|&binvar]
-b indica il numero di byte che specifichi.
-k forza i socket a rimanere aperti, questo permette d ricevere delle informazioni tramite UDP. Se -k non è specificato, il socket aperto invia le informzaoni al'indirizzo specificato e successivamente viene chiuso.
Se tu specifichi un nome di un socket che non esiste, esso viene creato. Se invece esiste viene utilizzata per inviare le info.
Puoi anche specificare la porta che vuoi usare, se non è specificata mirca ne sceglie una a caso.
ip e porta rappresentano il destinatario dei dati che stai mandando.
On error: se /sockudp sgarra, esso setta $sock().wserr il valore dell'errore.
on 1:udpread:name:commands

L'evento upread si verifica quando c'è un'informazione da leggere da un UDP socket. Il comando è /sockread



1   ...   6   7   8   9   10   11   12   13   14


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət