Slik Send en Array via Winsock i Visual Basic 6

Winsock kontroll i Visual Basic 6 lar deg lage programmer som etablerer forbindelser mellom hverandre over et nettverk, med ett program som fungerer som en server og den andre som en klient. Winsock kontroll har flere metoder som brukes for tilkobling, sende og motta data. Du kan bruke bokstavelig data, informasjon fra tekstbokser eller variabler å sende informasjon. Men fordi arrays bruker indeksene og har flere dataelementer, passerer disse fungerer litt annerledes enn passerer andre typer data.

Bruksanvisning

Server Program

1 Åpne en ny Visual Basic-prosjekt. Klikk på "Project" på menyen og deretter "Components". Bla nedover i dialogboksen, og klikk deretter på "Microsoft Winsock kontroll 6,0" boksen for å sette et merke i det, så klikker du på "OK" -knappen.

2 Dobbeltklikk på Winsock kontroll i verktøykassen for å legge det til skjemaet. Også dobbeltklikker Command og TextBox kontroll to ganger for å legge til disse tre kontroller i skjemaet. Klikk og dra dem til å ordne dem slik du ønsker.

3 Dobbeltklikk skjemaet for å åpne Form_Load subrutine. Skriv inn følgende kode:

WinSock1.LocalPort = portnummer
WinSock1.Listen

Når serveren programmet kjører, åpner denne koden Winsock og lytter etter en klient tilkobling på den medfølgende portnummer. Enten bruke en variabel for å angi et portnummer eller skriv et heltall direkte, for eksempel port 21 eller 22.

4 Åpne WinSock1_ConnectionRequest subrutine og skriv inn følgende kode:

Hvis WinSock1.State <> sckClosed Deretter
WinSock1.Close
Slutt om
WinSock1.Accept RequestID

Dette sjekker for å se om winsock kontroll har etablert en forbindelse, og hvis så, lukker det det så godtar forespørsler fra kunder for å etablere en ny forbindelse.

5 Åpne WinSock1_DataArrival subrutine og skriv inn følgende kode:

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

Den første linje skaper en ny streng variabel for å få innkommende data fra klienten. Den andre linjen styrer winsock kontroll lagrer dataene til variabelen. Den tredje linjen legger den nye data til eksisterende tekst i den første tekstboksen.

6 Åpne Command1_Click subrutine og skriv inn følgende kode:

WinSock1.SendData Text2.Text

Denne linjen sender bare informasjon fra andre tekstboksen til klientprogrammet.

Client Program

7 Åpne en ny Visual Basic-prosjekt. Dobbeltklikk på Winsock kontroll, Command og TextBox kontroll for å legge til hver av disse til skjemaet. Klikk og dra dem til å ordne dem slik du ønsker.

8 Dobbeltklikk skjemaet for å åpne Form_Load subrutine. Skriv inn følgende kode:

WinSock1.RemoteHost = hostIP
WinSock1.RemotePort = portnummer
WinSock1.Connect

Disse linjene sende en tilkoblingsforespørsel til en server ved hjelp av hostIP og portnummer verdier. Erstatt dette med variabler som holder disse verdiene eller med en streng verdi for hostIP og et heltall for portnummer. Bruk for eksempel "127.0.0.1" som vert verdi, som er den lokale verten, slik at du kan teste programmet på din lokale maskin.

9 Åpne WinSock1_DataArrival subrutine og skriv inn følgende kode:

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

Denne koden virker nøyaktig på samme måte som data ankomst subrutine for Winsock kontroll i tjenerprogrammet.

10 Åpne Command1_Click subrutine og skriv inn følgende kode:

Dim myArray (3) As String
myArray (0) = "Denne"
myArray (1) = "er"
myArray (2) = "min"
myArray (3) = "array".
For i = 0 For å UBound (myArray)
WinSock1.SendData myArray (i)
Neste jeg

De første fem linjene opprette en matrise med fire strykere elementer og initialiserer hver verdi. De neste tre linjer kjøre en loop som sender hvert element i matrisen en av gangen gjennom winsock kontroll til serveren programmet. Du kan kopiere denne koden i tjenerprogrammet til å sende arrays derfra til klientprogrammet.

Hint

  • Hvor du får din rekke variabler og verdier gjør ingen forskjell. Men for mer kompliserte programmer, skrive kode for å sjekke om en variabel er en matrise eller ikke før du sender det til mottakerprogrammet. I dette eksempel klienten sender bare arrays mens serveren sender bare ikke-matrise variabler.
  • Når du bruker disse to programmene, må du åpne tjenerprogrammet først. Hvis du åpner klientprogrammet først, deretter vil det sende en tilkoblingsforespørsel til en ikke-eksisterende server og aldri etablere en forbindelse. Alternativt kan du legge kommandoknappene til hvert program og flytte tilkoblingskode fra de respektive Form_Load subrutiner til disse knappene for å unngå dette problemet.