asware Skrevet 15. juni 2004 Del Skrevet 15. juni 2004 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
TAFT Skrevet 18. juni 2004 Del Skrevet 18. juni 2004 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå