Call Cmd1 'appel de la fonction Cmd1 text1.Text = Cmd1 'affichage de la fonction Cmd1 dans text1.text sur le serveur
Call Cmd1
text1.Text = Cmd1 'affichage de la fonction Cmd1 dans text1.text sur le serveur
Call WS.SendData(Text1.Text)
Call WS.SendData(Cmd1)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionWS.SendData "cmd1" & vbCrLf
Je veux maintenant que le serveur renvoie le resultat de la fonction Cmd1 affiché dans le Text1.Text, au client dans un client.Text par exemple.
Option Explicit '# Chargement de la form cliente Private Sub Form_Load() Command1.Enabled = False '# Un seul Winsock est requis ici, pas de groupe de controles, donc '# On demande la connection au port 456 WS.Connect "127.0.0.1", 456 End Sub Private Sub Command1_Click() '# Envoi de la requete WS.SendData "WinDir" End Sub Private Sub WS_Close() '# Le serveur a fermé la connection, on grise le bouton d'envoi de la requete WS.Close Command1.Enabled = False End Sub Private Sub WS_Connect() '# Le serveur a accepté notre demande de connection, on active le bouton de requete Command1.Enabled = True End Sub Private Sub WS_DataArrival(ByVal bytesTotal As Long) Dim sBuffer As String Dim sQuery As String Dim sAnswer As String Dim nPos As Long '# Reception de données WS.GetData sBuffer, vbString, bytesTotal nPos = InStr(sBuffer, "|") If nPos Then '# On sépare la requete et la reponse sQuery = Left$(sBuffer, nPos - 1) sAnswer = Mid$(sBuffer, nPos + 1) Select Case sQuery Case "WinDir" '# Il s'agit là de notre réponse a la demande WinDir formulée... Text1.Text = sAnswer End Select End If End Sub
Option Explicit '# Chargement de la form serveur '# Nous allons écouter le port 456 à l'aide du Winsock dont l'index est 0 Private Sub Form_Load() WS(0).LocalPort = 456 WS(0).Listen End Sub Private Sub WS_Close(Index As Integer) WS(Index).Close '# S'il s'agit du dernier contrôle du groupe, on le décharge If Index > 0 And Index = WS.UBound Then Unload WS(Index) End If End Sub Private Sub WS_ConnectionRequest(Index As Integer, ByVal requestID As Long) Dim i As Long '# On parcours la liste des Winsock For i = 1 To WS.UBound '# Celui-ci est libre ? très bien, il gèrera le dialogue avec notre nouveau client If WS(i).State = sckClosed Then WS(i).Accept requestID Exit Function End If Next '# Aucun controle libre n'ayant été trouvé, nous en créons un nouveau, pour notre client Load WS(i) WS(i).Accept requestID End Sub Private Sub WS_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim sQuery As String Dim sAnswer As String '# On récupère la ligne de requete WS(Index).GetData sQuery, vbString, bytesTotal '# En fonction de l'information demandées Select Case sQuery Case "WinDir" '# On renseigne la variable sAnswer '# Ici, un bête exemple, le client peu demander le chemin du repertoire Windows sAnswer = Environ$("WINDIR") End Select '# On renvoie la requete et la réponse WS(Index).SendData sQuery & "|" & sAnswer End Sub
Exit Functiondans le serveur m'affiche une erreur, je l'ai juste mit en commentaire pour delete l'erreur.