09. maj 2001 - 13:37Der 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?
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?
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.
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
Synes godt om
Ny brugerNybegynder
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.