Avatar billede delley Nybegynder
08. november 2002 - 14:31 Der er 8 kommentarer

WinSock Client connection

Hej Alle!

Jeg har et lille problem...

Jeg er ved at lave et lille klient/server program og problemet ligger indtil videre på klient siden.

Meningen med nedenstående kode er at når der bliver trykket på en knap, så opretter klienten en forbindelse til serveren og sender en tekststreng afsted.

Problemmet er at det tager lidt tid at oprette en forbindelse og hvis jeg fyrer det hele af på et par linier så får jeg en fejl der siger " Forbindelsen ikke klar endnu" (eller noget i den stil).

Nu har jeg så lavet en smart lille løkke der kører indtil at forbindelsen er klar (indtil state = 7 (connected)), MEN det der sker at state aldrig bliver 7 og løkken kører derfor uendeligt...

HVAD ER PROBLEMET???

PS: har prøvet state 1 (open) uden resultat

Mvh,

Daniel

---------------------------------------------------
Private Sub cmdConnect_Click()
Dim txtSMS As String, connection_state As Integer
Dim run_loop As Integer

tcpclient.RemoteHost = "192.168.1.2"
tcpclient.RemotePort = 1001
tcpclient.Connect

run_loop = 0
Do While run_loop = 0
    connection_state = tcpclient.State
    If connection_state = 7 Then
        txtSMS = "999999999;Hej Med Dig"
        tcpclient.SendData txtSMS
        Exit Do
    End If   
Loop

End Sub
---------------------------------------------
Avatar billede jrl0469 Nybegynder
08. november 2002 - 15:13 #1
Hej
Prøv at ændre connection_state til en variabletype: Long
Avatar billede jokual.dk Nybegynder
08. november 2002 - 15:19 #2
jeg vil bruge en string, hvis jeg var dig. Det virker sku' altid
Avatar billede delley Nybegynder
08. november 2002 - 15:39 #3
Hej! Tak for jeres svar :-)

Hverken long eller string virkede...

Hva' nu....
Avatar billede joern Nybegynder
09. november 2002 - 20:48 #4
Hej.
Jeg vil foreslå en error-handling, der ved hjælp af en timer forsøger nogle gange.  Lykkes det så ikke må der jo være en fejl ved at forbinde til serveren, så må brugeren tilbydes at forsøge igen senere.

M.v.h.  Jørn
Avatar billede sjh Nybegynder
10. november 2002 - 02:40 #5
'Prøv med noget af dette

Option Explicit

Private m_Complete As Boolean

Private Sub cmdConnect_Click()
  m_Complete = True
  tcpclient.LocalPort = 0
  tcpclient.Connect "192.168.1.2", 1001
End Sub

Private Sub tcpclient_Connect()
'Når du har fået fat i server køre Connect
Dim txtSMS As String
Dim run_loop As Integer

run_loop = 0

  Do While run_loop = 5 'Sender 5 gange
    DoEvents
      If m_Complete = True Then
        txtSMS = "999999999;Hej Med Dig"
        tcpclient.SendData txtSMS
        run_loop = run_loop + 1
      m_Complete = False
    End If
  Loop
End Sub

Private Sub tcpclient_SendComplete()
  'Når det du har sende er motaget køre SendComplete
  m_Complete = True
End Sub
Avatar billede delley Nybegynder
13. november 2002 - 12:10 #6
UPS, undskyld jeg ikke har svaret endnu, men har ikke lige haft tid til at teste ovenstående forslag.

Jeg tester i aften.

Undskyld
Avatar billede delley Nybegynder
13. november 2002 - 14:19 #7
Hej!

Som I kan se så er der vist gået ged i den fra eksperten.dk side.

Har desværre ikke mulighed for at teste sjh's svar da det er forsvundet.

#SJH

Du må meget gerne poste dit svar igen...

D
Avatar billede sjh Nybegynder
13. november 2002 - 23:35 #8
nu virker det igen
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