Come inviare un array tramite Winsock in Visual Basic 6

April 28

Il controllo Winsock in Visual Basic 6 consente di creare programmi che stabiliscono connessioni tra l'altro su una rete, con un programma che funge da server e l'altro come client. Il controllo Winsock ha diversi metodi utilizzati per la connessione, l'invio e la ricezione di dati. È possibile utilizzare i dati letterali, informazioni provenienti da caselle di testo o anche variabili per passare informazioni. Tuttavia, poiché gli array utilizza gli indici e hanno diversi elementi di dati, passando queste opere un po 'diverso rispetto a passare altri tipi di dati.

istruzione

Programma server

1 Aprire un nuovo progetto di Visual Basic. Fai clic su "Progetto" nel menu e poi su "Componenti". Scorrere verso il basso nella finestra di dialogo, quindi fare clic sul "6.0 Microsoft Winsock Control" di dialogo per mettere un segno di spunta, quindi fare clic sul pulsante "OK".

2 Fare doppio clic sul controllo Winsock nella casella degli strumenti per aggiungere al modulo. Anche fare doppio clic sul controllo CommandButton e il controllo TextBox due volte per aggiungere questi tre controlli al form. Fare clic e trascinare loro di organizzare loro come si vorrebbe.

3 Fare doppio clic sul form per aprire la subroutine Form_Load. Digitare il seguente codice:

Winsock1.LocalPort = portNumber
WinSock1.Listen

Quando il programma server gira, questo codice si apre il Winsock e ascolto per una connessione client sul numero di porta in dotazione. O utilizzare una variabile per impostare un numero di porta o digitare un numero intero direttamente, come ad esempio la porta 21 o 22.

4 Aprire la subroutine WinSock1_ConnectionRequest e digitare il seguente codice:

Se WinSock1.State <> sckClosed Poi
WinSock1.Close
Finisci se
WinSock1.Accept requestID

Questa verifica per vedere se il controllo Winsock ha stabilito una connessione e se è così, si chiude poi accetta le richieste da parte dei clienti per stabilire una nuova connessione.

5 Aprire la subroutine WinSock1_DataArrival e digitare il seguente codice:

Dim strData As String
WinSock1.GetData strData, vbString
Text1.Text = Text1.Text & strData

La prima riga crea una nuova variabile stringa per ottenere i dati in arrivo dal client. La seconda linea dirige il controllo Winsock salva i dati alla variabile. La terza linea aggiunge i nuovi dati a qualsiasi testo esistente nella prima casella di testo.

6 Aprire la subroutine Command1_Click e digitare il seguente codice:

WinSock1.SendData Text2.Text

Questa linea invia semplicemente informazioni dalla seconda casella di testo per il programma client.

Programma client

7 Aprire un nuovo progetto di Visual Basic. Fare doppio clic sul controllo Winsock, controllo CommandButton e il controllo TextBox per aggiungere ciascuno di questi al form. Fare clic e trascinare loro di organizzare loro come si vorrebbe.

8 Fare doppio clic sul form per aprire la subroutine Form_Load. Digitare il seguente codice:

WinSock1.RemoteHost = IP_computer
WinSock1.RemotePort = portNumber
Winsock1.Connect

Queste linee invia una richiesta di connessione a un server utilizzando i valori HostIP e portNumber. Sostituire questa con le variabili che contengono questi valori o con un valore di stringa per il IP_computer e un intero per il portNumber. Ad esempio, utilizzare "127.0.0.1" come valore padrone di casa, che è l'host locale in modo da poter testare il programma sul computer locale.

9 Aprire la subroutine WinSock1_DataArrival e digitare il seguente codice:

Dim strData As String
WinSock1.GetData strData, vbString
Text1.Text = Text1.Text & strData

Questo codice funziona esattamente come l'arrivo dei dati subroutine per il controllo Winsock nel programma server.

10 Aprire la subroutine Command1_Click e digitare il seguente codice:

myarray Dim (3) As String
myarray (0) = "Questo"
myarray (1) = "è"
myarray (2) = "mia"
myarray (3) = "allineamento".
Per i = 0 Per UBound (myarray)
WinSock1.SendData myarray (i)
Next i

Le prime cinque righe creano una matrice con quattro oggetti stringa e inizializza ogni valore. Le successive tre linee di eseguire un ciclo che inviare ogni elemento dell'array uno alla volta attraverso il controllo Winsock per il programma server. È possibile duplicare questo codice nel programma server di inviare le matrici da lì al programma client.

Consigli e avvertenze

  • Dove si ottiene la variabile e valori di matrice non fa differenza. Tuttavia, per i programmi più complessi, scrivere il codice per controllare se una variabile è un array o non prima di inviarlo al programma di ricezione. In questo esempio, il client invia solo matrici mentre il server invia solo variabili non-array.
  • Quando si utilizzano questi due programmi, assicurarsi che si apre il programma server. Se si apre il programma client, quindi invierà una richiesta di connessione a un server inesistente e non stabilire una connessione. In alternativa, è possibile aggiungere pulsanti di comando per ogni programma e spostare il codice di connessione dalle rispettive subroutine Form_Load a questi pulsanti per evitare questo problema.