Controllo Winsock di Visual Basic



Похожие документы
Esercizio 2. Client e server comunicano attraverso socket TCP

I Socket. Laboratorio Software M. Grotto R. Farina

Cenni di programmazione distribuita in C++ Mauro Piccolo

Introduzione alle applicazioni di rete

Socket & RMI Ingegneria del Software - San Pietro

Socket TCP. seconda parte

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sockets e DatagramSocket

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Laboratorio di Programmazione in Rete

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert)

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Transmission Control Protocol

Reti di Telecomunicazione Lezione 7

Telematica II 12. Esercitazione/Laboratorio 4

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

HTTP adaptation layer per generico protocollo di scambio dati

Applicazioni distribuite

Socket TCP. prima parte

Programmazione dei socket con TCP #2

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_ Stefano Millozzi

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

Arduino Quick Ethernet library Reference

Configurazione FileZilla Server

Architettura Client-Server

Chat. Connettersi a un server di chat. Modificare le impostazioni di chat. Ricevere impostazioni chat. Chat

Esercitazione [6] Client/Server con Socket

Firewall e Abilitazioni porte (Port Forwarding)

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Altri tipi di connessione

Dal protocollo IP ai livelli superiori

Reti di Telecomunicazione Lezione 6

Domande frequenti su Phoenix FailSafe

Sistemi Operativi (modulo di Informatica II)

IPC Inter Process Communication

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Paradigma client-server

Push-to-talk Nokia N76-1

I/O su Socket TCP: read()

ISI s.r.l. Corso di Access 05 CREARE UN ELENCO MAILING ED INVIARE MESSAGGI DI POSTA ELETTRONICA Pag. 1/6

appunti delle lezioni Architetture client/server: applicazioni server

2 Configurazione lato Router

Informatica per la comunicazione" - lezione 8 -

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Laplink FileMover Guida introduttiva

Applicazioni web. Parte 5 Socket

Outlook Plugin per VTECRM

Le Reti Informatiche

appunti delle lezioni Architetture client/server: applicazioni client

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Manuale nuove funzionalità FASTModem

Una prima applicazione in C per l utilizzo delle socket

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

Le caselle di Posta Certificata attivate da Aruba Pec Spa hanno le seguenti caratteristiche:

Protocollo di trasmissione Trova il Tuo Farmaco. Indice. Versione documento: 1.4 Data: 29/06/2011

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

HikVision. Creazione e gestione di collegamenti con sistemi TVCC HikVision DVR/Network Camera

rsystem Maximiliano Marchesi

Attivazione prodotto - Release 2 (2011) Prodotto Attivazione prodotto. Release

Inizializzazione degli Host. BOOTP e DHCP

Designjet Partner Link Alert Service. Guida introduttiva

Aggiornamenti Sistema Addendum per l utente

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Interprocess Communications - II. Franco Maria Nardini

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Configurazione del servizio Dynamic DNS. Questa procedura ti guiderà durante i 4 passi necessari alla messa in funzione del servizio.

Gli step previsti per portare a termine la configurazione della casella PEC sono:

12.5 UDP (User Datagram Protocol)

La seguente procedura permette di configurare il Vostro router per accedere ad Internet. Vengono descritti i seguenti passaggi:

Elementi sull uso dei firewall

Push-to-talk. Edizione 1

Gli step previsti per portare a termine la configurazione della casella PEC sono:

ESERCITAZIONE Semplice creazione di un sito Internet

GUIDA UTENTE MONEY TRANSFER MANAGER

Abilitare la connettività per 3PAR Storage

Conferencing. Novell. Conferencing 1.0. novdocx (it) 6 April 2007 AVVIARE IL CLIENT CONFERENCING: ACCESSO. Luglio 2007

15J0460A300 SUNWAY CONNECT MANUALE UTENTE

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

2.1 Configurare il Firewall di Windows

PIANO DI LAVORO A.S. 2015/16

Guida alla configurazione dell' di altri provider sul cellulare Galaxy S.

Push-to-talk. Definire un punto di accesso PTT. Push-to-talk

Corso di Reti di Calcolatori L-A

Reti di Calcolatori. Il Livello delle Applicazioni

P2-11: BOOTP e DHCP (Capitolo 23)

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

I Socket in PHP. Introduzione. Gestione degli errori nei socket. Funzioni socket di PHP. (manuale PHP)

Транскрипт:

Controllo Winsock di Visual Basic Il controllo Winsock, non visibile all'utente, consente di accedere ai servizi di rete TCP e UDP. Per creare applicazioni client o server non è necessario conoscere in maniera approfondita il TCP o richiamare API Winsock di basso livello (simili alle system call socket di Unix). Impostando le proprietà e attivando i metodi del controllo (object oriented e event driven), è possibile connettersi a un computer remoto e trasferire i dati in entrambe le direzioni. Proprietà (strutture dati della socket) BytesReceived LocalHostName LocalIP LocalPort Protocol RemoteHost RemoteHostIP RemotePort State Restituisce il numero di byte ricevuti sulla connessione Restituisce il nome del computer locale Restituisce l'indirizzo IP del computer locale Restituisce o imposta la porta utilizzata nel computer locale Restituisce o imposta il protocollo della socket Restituisce o imposta il nome utilizzato per identificare il computer remoto Restituisce l'indirizzo IP dell'host remoto Restituisce o imposta la porta a cui connettersi sul computer remoto Restituisce lo stato della connessione della socket Metodi (primitive socket) Accept Bind Close Connect GetData Listen PeakData SendData Accetta una richiesta di connessione Associa la socket a una porta e a una scheda specifica Chiude la connessione corrente Connessione a un computer remoto Recupera i dati inviati dal computer remoto In attesa di richieste di connessione Controlla i dati in arrivo senza rimuoverli dal buffer Invia i dati al computer remoto Eventi (notifica di eventi a cui rispondere) Close Viene generato quando la connessione è stata chiusa Connect Viene generato quando l'operazione di connessione viene completata ConnectionRequest Viene generato quando un client remoto tenta di connettersi DataArrival Viene generato quando si ricevono dati dal computer remoto Error Si è verificato un errore SendComplete Viene generato dopo il completamento di un'operazione di invio SendProgress Viene generato durante il processo di invio dei dati Selezione del protocollo Quando si utilizza il controllo WinSock, è innanzitutto necessario considerare se è preferibile utilizzare il protocollo TCP o il protocollo UDP. La scelta del protocollo è in genere determinata dal tipo di applicazione che si desidera creare. 1. Stabilire se l'applicazione richiederà un riconoscimento da parte del server o del client all'invio o alla ricezione dei dati. In caso affermativo, il protocollo TCP richiede una connessione esplicita prima di inviare o ricevere dati. 2. Stabilire se i dati saranno di grandi dimensioni, ad esempio nel caso di file immagine o audio. Dopo aver stabilito la connessione, il protocollo TCP la mantiene e garantisce l'integrità dei dati. Questa connessione, tuttavia, utilizza una maggior quantità di risorse. 3. Stabilire se i dati verranno inviati in un'unica sessione o in sessioni diverse. Se ad esempio si desidera creare un'applicazione che notifica a determinati computer il completamento di particolari operazioni, il protocollo UDP può essere la scelta migliore. Il protocollo UDP è inoltre più adatto all'invio di piccole quantità di dati. 1

Protocollo UDP Il protocollo UDP (User Datagram Protocol) è un protocollo senza connessione. La creazione di un'applicazione UDP è più semplice della creazione di un'applicazione TCP, perché il protocollo UDP non richiede una connessione esplicita. Quando si crea un'applicazione che utilizza il protocollo UDP, un programma riceve i dati, mentre un altro programma li invia sulla socket in modalità datagram. PROGRAMMA RECEIVE Inizializzazione della socket Winsock1.Protocol = sckudpprotocol Winsock1.LocalPort = 8001 Winsock1.Bind Legge i dati arrivati e li visualizza Dim Msg As String Winsock1.GetData Msg Me.Print Msg & from & Winsock1.RemoteHostIP PROGRAMMA SEND Inizializza la socket Winsock1.Protocol = sckudpprotocol Winsock1.RemoteHost = "127.0.0.1" Winsock1.RemotePort = 8001 Private Sub SendButton_Click() Invia i dati (ora attuale) sulla socket Winsock1.SendData Format(Now, hh:mm:ss ) 2

Protocollo TCP Il protocollo TCP (Transfer Control Protocol) consente di creare e mantenere una connessione con un computer remoto. Dopo aver stabilito la connessione, entrambi i computer possono inviare e ricevere dati. Quando si crea un'applicazione che utilizza il protocollo TCP, è innanzitutto necessario decidere se tale applicazione sarà server o client. Se l'applicazione è un server rimarrà in "ascolto" su una determinata porta. Quando il client invia una richiesta di connessione, il server potrà accettare tale richiesta e completare la connessione. Client e server potranno quindi comunicare. PROGRAMMA SERVER 'Inizializza la socket e si mette in ascolto Winsock1.Protocol = scktcpprotocol Winsock1.LocalPort = 8001 Private Sub Winsock1_ConnectionRequest(ByVal requestid As Long) 'Verifica se possibile accettare connessione If Winsock1.State <> sckclosed Then 'Accetta la nuova connessione Winsock1.Accept requestid 'Legge i dati in arrivo e li visualizza Dim Msg As String Winsock1.GetData Msg Me.Print Msg & from & Winsock1.RemoteHostIP 'Chiude la connessione e si rimette in ascolto PROGRAMMA CLIENT 'Inizializza il socket e richiede connessione Winsock1.Protocol = scktcpprotocol Winsock1.RemoteHost = "127.0.0.1" Winsock1.RemotePort = 8001 Private Sub ConnectButton_Click() 'Richiede la connessione Winsock1.Connect Private Sub Winsock1_Connected() 'Connessione completata, ora è possibile scambiare dati SendButton.Enabled = True Private Sub SendButton_Click() 'Invia i dati (ora attuale) sulla socket e chiude la connessione Winsock1.SendData Format(Now, "hh:mm:ss") Private Sub CloseButton_Click() 'Chiude la connessione 3

Client TCP Universale Private Sub cmdconnect_click() On Error GoTo Connect_Err If cmdconnect.caption = "Connect" Then Winsock1.Connect txtremotehost.text, txtremoteport.text cmdconnect.caption = "Close" lblstatus.caption = "Connecting..." Else cmdconnect.caption = "Connect" Exit Sub Connect_Err: MsgBox Err.Description Private Sub cmdsend_click() Winsock1.SendData txtsentdata.text cmdconnect.caption = "Connect" Private Sub Winsock1_Connect() lblstatus.caption = "Connected with " & Winsock1.RemoteHostIP Dim msg As String Winsock1.GetData msg txtrecvdata.text = txtrecvdata.text & msg txtrecvdata.selstart = Len(txtRecvData.Text) 4

Server TCP Universale Private Sub cmdlisten_click() On Error GoTo Listen_Err If cmdlisten.caption = "Listen" Then Winsock1.LocalPort = txtlocalport.text cmdlisten.caption = "Close" lblstatus.caption = "Listening..." Else cmdlisten.caption = "Listen" Exit Sub Listen_Err: MsgBox Err.Description Private Sub cmdsend_click() Winsock1.SendData txtsentdata.text cmdlisten.caption = "Listen" Private Sub Winsock1_ConnectionRequest(ByVal requestid As Long) If Winsock1.State <> sckclosed Then Winsock1.Accept requestid lblstatus.caption = "Connected with " & Winsock1.RemoteHostIP Dim msg As String Winsock1.GetData msg txtrecvdata.text = txtrecvdata.text & msg txtrecvdata.selstart = Len(txtRecvData.Text) 5