Avatar billede piotr Nybegynder
09. maj 2001 - 13:37 Der er 3 kommentarer og
1 løsning

Visual Basic TCP server/client og porte

Jeg har lavet en simpel tcp server/client(winsock) i Visual Basic, og den virke fint. Der hvor problemet opstår er at jeg skal connecte til en anden pc\'er igennem port 88889. Det vil VB ikke acceptere og kommer med fejlmeddelsen:\"Run-time error 6, overflow\" Hvordan undgår jeg dette?
Avatar billede piotr Nybegynder
09. maj 2001 - 13:53 #1
her er et stykke af koden:

Private Sub cmdPort_Click()

Dim Port As Integer    \' Declare a variable for the port.

Port = txtPort.Text

   
        If MsgBox(\"Use port: \" & txtPort.Text & \"?\", _
            vbYesNo + vbQuestion) = vbYes Then
           
            \' Connect to the remote machine
           
        tcpServer.Close
        tcpServer.LocalPort = Port
        tcpServer.Listen
       
               
            \' Wait until full connection is made
               
            Do Until tcpServer.State = sckConnected
                DoEvents: DoEvents: DoEvents: DoEvents
                If tcpServer.State = sckError Then
                    MsgBox \"Problem opening port!\", vbCritical
                    Exit Sub
                End If
            Loop
       
            \' Send the data
       
       
        Else
       
            Call MsgBox(\"OK - Not listening!\", vbInformation)
       
        End If
   
   

End Sub


integer går kun op til 32.767, så hvilken type skal jeg så bruge?
Avatar billede langejens Nybegynder
09. maj 2001 - 14:16 #2

Brug Long istedet for Integer

Det er også meget hurtiger
Avatar billede brian Nybegynder
09. maj 2001 - 22:46 #3
Som du selv er inde på kan du ikke bruge en integer variabel til det ønskede portnr.
Dim Port As Long er løsningen.
Nu ved jeg selvfølgelig ikke hvordan dit program er sat sammen, men jeg har selv lavet noget lignende engang og da det skulle testes af andre gik der ged i det fordi brugere generelt laver alle de fejl som kan laves. Her tænker jeg især på :
Port = txtPort.Text - her kan opstå nogle kedelige situationer hvis man f.eks. indtaster port88889 - brug f.eks. Port = Val(txtPort.Text) eller lign.
Avatar billede piotr Nybegynder
12. maj 2001 - 13:47 #4
hmm, ingen af delene løste problemet, VB vil ikke godkende en port af typen long. Problemet er dog blevet løst ved at anvende et andet portnr
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