1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
Option Explicit
Dim Port_int As Integer
Private Sub Connect_wsk_DataArrival(ByVal bytesTotal As Long)
Dim Trame_str As String 'Reçoit la trame transmise par le module
On Error GoTo ErreurTrame
'lecture des données transmises
Connect_wsk.GetData Trame_str
'envoi d'un acquitement
Connect_wsk.SendData "Ok"
'traitement de la trame des données si on est connecté a la base de données
'fermeture du port et remise en écoute
Connect_wsk.Close
Connect_wsk.LocalPort = 0
Connect_wsk.Bind (Port_int)
Connect_wsk.Listen
Exit Sub
ErreurTrame:
MsgBox "Erreur de traitement de la trame " & vbCrLf & Err.Description
Connect_wsk.Close
Connect_wsk.LocalPort = 0
Connect_wsk.Bind (Port_int)
Connect_wsk.Listen
End Sub
Private Sub Connect_btn_Click()
'Ferme le port proprement avant de se mettre à l'écoute
Connect_wsk.Close
Connect_wsk.LocalPort = 0
Connect_wsk.Bind (Port_int)
Connect_wsk.Listen
End Sub
Private Sub Connect_wsk_ConnectionRequest(ByVal requestID As Long)
'Ferme le port avant d'accepter la connexion
If Connect_wsk.State <> sckClosed Then Connect_wsk.Close
Connect_wsk.Accept requestID
End Sub
Private Sub Form_Load()
'Lecture des paramétres
Port_int = 8080
Freq_lng = 100
'Attribue la fréquence de lecture au timer
SurvPort_tmr.Interval = Freq_lng
'Connexion à la base de données
ConnexionBase
'mise en ecoute dès le chargement de l'application
Connect_btn_Click
End Sub
Private Sub Form_Unload(Cancel As Integer)
'fermer proprement le port en fin d'utilisation
Connect_wsk.Close
Connect_wsk.LocalPort = 0
End Sub
Private Sub SurvPort_tmr_Timer()
'Surveille l'état du port l'affiche dans la barre d'état
'et le ferme en se remettant à l'écoute dans certains cas
If Connect_wsk.State = 0 Then BarreInfo_stb.Panels(1) = "Deconnecté"
If Connect_wsk.State = 1 Then BarreInfo_stb.Panels(1) = "Ouvert"
If Connect_wsk.State = 2 Then BarreInfo_stb.Panels(1) = "A l'écoute"
If Connect_wsk.State = 3 Then BarreInfo_stb.Panels(1) = "En attente"
If Connect_wsk.State = 4 Then BarreInfo_stb.Panels(1) = "En cours de résolution"
If Connect_wsk.State = 5 Then BarreInfo_stb.Panels(1) = "Résolu"
If Connect_wsk.State = 6 Then BarreInfo_stb.Panels(1) = "Connexion en cours"
If Connect_wsk.State = 7 Then BarreInfo_stb.Panels(1) = "Connecté"
If Connect_wsk.State = 8 Then
BarreInfo_stb.Panels(1) = "En cours de fermeture"
Connect_wsk.Close
Connect_wsk.LocalPort = 0
Connect_wsk.Bind (Port_int)
Connect_wsk.Listen
End If
If Connect_wsk.State = 9 Then
BarreInfo_stb.Panels(1) = "Erreur"
Connect_wsk.Close
Connect_wsk.LocalPort = 0
Connect_wsk.Bind (Port_int)
Connect_wsk.Listen
End If
End Sub |