Avatar billede kasseper Nybegynder
22. december 2001 - 13:07 Der er 1 kommentar og
1 løsning

GetData og Winsock

Hej med jer.

Jeg er ved at lege lidt med Winsock.
Jeg laver et program der kommunikere med en anden server via UDP.
Al kommunikation foregår via byteArrays, og jeg har intet problem med at sende min besked, men når jeg skal modtage min besked, så går det galt.

Jeg har flg. metode :
------------------------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

\' Jeg ved at min datamængde ikke er størrer end 500
Dim antal As Integer
antal = Winsock1.BytesReceived
MsgBox (antal)
\' Hertil er der intet problem, jeg kan sagtens se hvor mange jeg modtager.....

Dim pakke() As Byte
Dim tal As Integer
tal = 0
Dim tekst As String

Winsock1.GetData pakke, vbArray + vbByte

Do While tal < antal
tekst = tekst & pakke(tal)
tal = tal + 1
Loop
Text1.Text = tekst

End Sub
-----------------------------------------------------

Problemet er bare at i Text1 står der nu ikke andet end nuller, og ikke nogen værdier eller noget som helst. Jeg er sikker på at jeg ikke kun modtager nuller, for hvis jeg prøver at specificere at jeg skal modtage som en streng, så kan jeg se at der står tekst i pakken. Hjælp modtages.
Avatar billede kasseper Nybegynder
22. december 2001 - 13:15 #1
HA fandt det selv...
Avatar billede kasseper Nybegynder
22. december 2001 - 13:16 #2
Det er noget med at hvis det array man har erklæret er størrer end den pakke der modtages, så er den tom, derfor skal man gøre sådan her :
------------------------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

\' Jeg ved at min datamængde ikke er størrer end 500
Dim antal As Integer
antal = Winsock1.BytesReceived
MsgBox (antal)
\' Hertil er der intet problem, jeg kan sagtens se hvor mange jeg modtager.....

Dim pakke() As Byte
Dim tal As Integer
tal = 0
Dim tekst As String
\' Det springende punkt.........
\'********************************
ReDim pakke(antal)
\'********************************

Winsock1.GetData pakke, vbArray + vbByte

Do While tal < antal
tekst = tekst & pakke(tal)
tal = tal + 1
Loop
Text1.Text = tekst

End Sub
-----------------------------------------------------


Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester