Gå til innhold

programmet henger når jeg "connecter"


Anbefalte innlegg

Sliter litt med en liten men viktig ting...

 

Holder på å lage et program der man har en Sørver og en Klient. Klienten skal selvfølgelig koble til Sørveren, og det er der problemet ligger. Når jeg prøver å koble til en sørver som ikke finnes henger programmet seg i ett sekund eller noe. Og det er det jeg lurer på om noen ville hjulpet meg med. Jeg har lett etter løsningen i flere uker nå (ikke helt sammenhengene)

 

Det er sinnsykt irriterende siden den hele tiden skal prøve å koble til sørveren.

 

Koden min til Klienten...

 

Public Buffer() As Byte
   Public InBuff(100) As Byte
   Public Temp As String
   Public StoppKlient As Boolean

   Public Client As TcpClient

   Public ipHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName)
   Public ipAddress As ipAddress = ipHostInfo.AddressList(0)
   Public localEndPoint As New IPEndPoint(ipAddress, 11000)

 

 

    Public Sub klient()
       Dim i As Integer

       Client = New TcpClient

       While True
           Try
               Application.DoEvents()
               Client.Connect(localEndPoint)
               Application.DoEvents()

               Console.WriteLine("OK")
               While StoppKlient = False

                   While Not Client.GetStream.DataAvailable()
                       Application.DoEvents()
                   End While

                   If Client.GetStream.DataAvailable() Then
                       Client.GetStream().Read(InBuff, 0, InBuff.Length)
                       Temp = "Client #" & "Hallo" & " " & System.Text.Encoding.Default.GetString(InBuff)
                       Console.WriteLine(Temp)
                   End If
               End While

           Catch e As Exception
               i += 1
               Console.WriteLine(e.Message & i)
           End Try
       End While

   End Sub

 

 

Tror det skulle være alt...

 

 

Noen som kan hjelpe så takk....

Lenke til kommentar
Videoannonse
Annonse

Har ikke traversert koden din, men på et generelt grunnlag så er det ganske naturlig at du får et delay i tråden når du prøver å connect'e til en endpoint som ikke finnes. Etter en timeout vil koden fortsette å eksekvere (ser du har en try/catch blokk). Dersom du vil unngå at applikasjonen din henger må du legge dette i en egen tråd.

Videre må du sørge for at serveren din kan håndtere flere samtidige forespørsler. Det gjør du (også) med å opprette en egen tråd for hver innkommende klient, slik at du frigjør porten som "serveren" lytter på. Hvis ikke vil alle klienter uten den som prosesseres stå i kø.

 

For nærmere info: Ta et søk på msdn/codeproject/gotdotnet (e.l.)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...