Avatar billede cronck Nybegynder
12. oktober 2004 - 14:57 Der er 8 kommentarer og
1 løsning

Send 2 Winsock beskeder efter hinanden

Jeg har et problem med denne kode. Den sender data'en i én streng i stedet for 2.

Winsock(x).SendData ("lstUsers|" & lstUsers)
Sleep 20
Winsock(x).SendData ("Welcome|" & arrSplit(1))

Modtagerens kode:
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    Dim arrSplit() As String
    With Winsock
        .GetData strData, vbString, bytesTotal
    End With
    Call AddToLog("Data Recieved: " & strData)
    arrSplit() = Split(strData, "|")
   
    Select Case arrSplit(0)
------osv. osv.--------

Modtageren genkender typen af besked som står i starten før "|" tegnet.

Når at jeg sender dette kommer beskeden som for eks. "lstUsers|CronckWelcome|Cronck"
Avatar billede sjh Nybegynder
12. oktober 2004 - 15:16 #1
Du kan vel bare lave en vente funktion..


Private blnWaitComplete As Boolean

Private Sub Winsock1_SendComplete() '<- Winsock1
  blnWaitComplete = False
End Sub

Public Sub WaitComplete()
  blnWaitComplete = True
  Do While blnWaitComplete
    DoEvents
  Loop
End Sub


  Winsock(x).SendData ("lstUsers|" & lstUsers)
  Call WaitComplete
  Winsock(x).SendData ("Welcome|" & arrSplit(1))
Avatar billede cronck Nybegynder
12. oktober 2004 - 15:19 #2
Smart... Takker :-)
Avatar billede sjh Nybegynder
12. oktober 2004 - 15:23 #3
selv tak :-)
Avatar billede cronck Nybegynder
12. oktober 2004 - 15:24 #4
Hmm...
                    Winsock(x).SendData ("lstUsers|" & UserList)
                    MsgBox "Waiting"
                    Call WaitComplete
                    MsgBox "Wait Complete"
                    Winsock(Index).SendData ("Welcome|" & arrSplit(1))
Kun msgbox "Waiting" bliver vist...
Har lagt de her 2 ind:
Private Sub Winsock1_SendComplete()
  blnWaitComplete = False
End Sub
Public Sub WaitComplete()
  blnWaitComplete = True
  Do While blnWaitComplete
    DoEvents
  Loop
End Sub
Avatar billede cronck Nybegynder
12. oktober 2004 - 15:25 #5
Ahh... Min Winsock hedder bare Winsock og ikk med et 1 tal :-)

Nu har jeg bare det problem, at jeg ikke kan bruge den her, fordi at Winsock er Indexed... altså jeg har flere af dem. (1)-(10)
Private Sub Winsock_SendComplete()
  blnWaitComplete = False
End Sub
Avatar billede sjh Nybegynder
12. oktober 2004 - 15:27 #6
så har den vel ikke sendt det endnu.. eller også er der sket en fejl.. så den ikke køre event -> SendComplete() .. måske fordi den hedder "Winsock1"
Avatar billede sjh Nybegynder
12. oktober 2004 - 15:30 #7
ved ikke lige om det funker som det var ment.. :D


Private blnWaitComplete(1000) As Boolean

Public Sub WaitComplete(Index As Integer)
  blnWaitComplete(Index) = True
  Do While blnWaitComplete(Index)
    DoEvents
  Loop
End Sub

Private Sub Winsock1_SendComplete(Index As Integer)
  blnWaitComplete(Index) = False
End Sub
Avatar billede cronck Nybegynder
12. oktober 2004 - 15:33 #8
Ja, Det virker! :-)

Takker endnu engang..
Avatar billede cronck Nybegynder
12. oktober 2004 - 17:40 #9
Jeg har lavet en tråd mere om det samme...
http://eksperten.dk/spm/549608
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