BorderGame
La grande guida all'AutoIt - Utilizzare le connessioni TCP - Versione stampabile

+- BorderGame (https://www.bordergame.it)
+-- Forum: Programmazione (/Forum-Programmazione--158)
+--- Forum: Programmazione (/Forum-Programmazione)
+---- Forum: Autoit (/Forum-Autoit)
+----- Forum: Guide autoit (/Forum-Guide-autoit)
+----- Discussione: La grande guida all'AutoIt - Utilizzare le connessioni TCP (/Thread-La-grande-guida-all-AutoIt-Utilizzare-le-connessioni-TCP)



La grande guida all'AutoIt - Utilizzare le connessioni TCP - scl - 18-11-2014 10:29 PM

Tengo a precisare che prima di affrontare quest'argomento è meglio sapere un minimo di teoria sennò gli script che programmerete resteranno sempre mediocri.

Le funzioni che vi occorreranno sono TCPSend, TCPConnect, TCPListen, TCPAccept, TCPSend, TCPRead, TCPStartup, TCPShutdown, TCPCloseSocket.

Le uso ora quasi tutte per un programmino molto semplice che legge e scrive dati dato ip e porta di connessione.
Codice:
HotKeySet("{F1}","Esci") ;premendo F1 avvio la funzione Esci

TCPStartup() ;sempre necessario per avviare il servizio TCP

local $ip = @IPAddress1 ;inizializziamo la variabile che contiene l'ip,
                        ;ho messo la macro @IPAddress1 per esempio, ma voi
                        ;potete mettere qualsiasi IP
local $porta = 1337 ;idem ma con la porta, non per forza la 1337
Global $socket = TCPConnect($ip,$porta) ;creo il socket di rete


if $socket = -1 Then ;se il socket non riesce a connettersi
    Exit ;non c'è connessione e si chiude
Else
    _Scrittura()
    _Lettura()
EndFunc

Func Scrittura()
    While 1 ;metto in un ciclo così per ripetere all'infinito l'operazione
            ;quindi in ogni momento posso inviare/ricevere dati
        TCPSend($socket,InputBox("Che devo inviare?","Scrivi..","") ;per inviare dati
    WEnd
EndFunc

Func Lettura()
    While 1
        Global $pacchetto_entrata = TCPRecv($socket, 2048) ;per leggere dati
        If $pacchetto_entrata <> "" Then ;se mi arriva un pacchetto NON vuoto
            MsgBox(64,"Dati in entrata!",$pacchetto_entrata)
        EndIf
    WEnd
EndFunc

Func Esci()
    Exit
EndFunc


potete copiarla ovunque, ma almeno inserite il nome del foro