Marko007
Messages postés96Date d'inscriptionmardi 15 mai 2007StatutMembreDernière intervention29 janvier 2009
-
29 août 2008 à 08:54
cs_akim77
Messages postés73Date d'inscriptionlundi 12 avril 2004StatutMembreDernière intervention17 septembre 2008
-
17 sept. 2008 à 19:46
J'ai un message d'erreur :
"Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port)
est habituellement autorisée."
Mon application possède deux forms, qui se "Form.SHOW" et se "Me.CLOSE" avec :
FormLoad =
Dim tcpClientConnect As TcpClient
Dim port As Int32 = 23
Dim localAddr As IPAddress = IPAddress.Any '.Parse("10.50.11.3")
Dim TcpServer As New TcpListener(localAddr, port)
Dim stream As NetworkStream
Private trd1 As New Thread(AddressOf ThreadConn) 'New thread
Private trd2 As New Thread(AddressOf ThreadData) 'New thread
Dim Thrdata As [String] = Nothing 'New thread
Dim Thrconn As [String] = Nothing 'New thread
If StrName = "" And Thrdata <> "*****" & vbCrLf And IntCarUser < 6 Then
IntCarUser = IntCarUser + 1
End If
If StrName "*****" And StrPassword "" And Thrdata <> "**" & vbCrLf And IntCarPassword < 3 Then
IntCarPassword = IntCarPassword + 1
End If
If StrName "" And Thrdata "*****" & vbCrLf And IntCarUser >= 5 Then
StrName = "*****"
Thrdata = ""
IntCarUser = 0
End If
If StrName "*****" And StrPassword "" And Thrdata = "**" & vbCrLf And IntCarPassword >= 2 Then
StrPassword = "**"
Thrdata = ""
IntCarPassword = 0
End If
'Error UserName If StrName "" And Thrdata <> "*****" & vbCrLf And IntCarUser 6 Then
Thrdata = ""
IntCarUser = 0
End If
'Error Password If StrName "*****" And StrPassword "" And Thrdata <> "**" & vbCrLf And IntCarPassword = 3 Then
Thrdata = ""
IntCarPassword = 0
End If
If IntCarUser >= 7 Then
IntCarUser = 0
End If
If IntCarPassword >= 4 Then
IntCarPassword = 0
End If
If StrName "*****" And StrPassword "**" Then
MSComm1.Output = Thrdata
Thrdata = ""
End If
cs_akim77
Messages postés73Date d'inscriptionlundi 12 avril 2004StatutMembreDernière intervention17 septembre 20084 29 août 2008 à 13:48
Salut,
Pour être sûr qu'il n'y a pas un autre logiciel à l'écoute de ton port 23 (Telnet).
Utilise la methode suivante:
- menu Démarrer/Exécuter, cmd + <Entrée>
- dans la nouvelle fenêtre, netstat -ano + <Entrée>
- dans la colonne Adresse locale, cherche celle qui se termine par :23
et note la valeur correspondante dans la dernière colonne (colonne sans
nom, chez moi)
- fais ensuite tasklist + <Entrée>
- cherche dans la colonne PID la valeur notée deux lignes plus haut et
regarde dans la première colonne le nom du logiciel qui squatte le port
23...
Si tu ne trouve pas le port 23, tu pourras chercher dans ton code pourquoi
il tente d'ouvrir plusieurs fois une connexion sur le port 23.
Marko007
Messages postés96Date d'inscriptionmardi 15 mai 2007StatutMembreDernière intervention29 janvier 2009 10 sept. 2008 à 16:31
Aucun autre logiciel qui écoute au niveau du port 23 (telnet).
Ce qui se passe, c'est à mon avis ceci : En faisant plusieurs fois un LOAD et CLOSE d'une forme qui execute un thread
gérant une connexion tcpclient + getstream, on atteint le nbre maximum d' utilisation de chaque adresse de socket (protocole/adresse réseau/port) habituellement autorisée... Et cela bug..
Des idées ?
Marco
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_akim77
Messages postés73Date d'inscriptionlundi 12 avril 2004StatutMembreDernière intervention17 septembre 20084 16 sept. 2008 à 20:31
Salut,
Tant pis si c'est une lapalissade, mais pourquoi ne pas fermer la connexion pendant le
CLOSE de la forme (qui execute un thread ....................), à priori elle devient inutile.