Bonjour,
J'ai crée une appli Windev qui arrive à recevoir (en mode serveur) une chaine de caractères depuis l'exemple "Utilisation des Sockets".
J'ai fait aussi une appli qui fonctionne en tant que client en Delphi et qui arrive à envoyer une chaine de caractères à un Serveur crée en Delphi.
Maintenant je voudrais utiliser ce client en Delphi avec le serveur en Windev... mais je n'arrive pas à faire fonctionner. Bizzarement je ne reçois la chaine de caractères qu'après avoir déconnecté le client en Delphi et pas lors de l'envoi.
Voici le code utilisé côté Windev :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SI PAS SocketCrée("Serveur", 2000) ALORS Erreur("erreur création " + ErreurInfo(errMessage)) SINON SI SocketChangeModeTransmission("Serveur", SocketMarqueurFin)= Vrai ALORS Info("mode de transmission modifié") FIN ThreadExécute("Thread1", threadNormal, ProcédureAttente) FIN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 PROCEDURE ProcédureAttente() SAI_Activite = SAI_Activite + " Attente de connexion " BOUCLE Multitâche(-2) SI SocketAttendConnexion("Serveur") ALORS Canal est une chaîne Canal = SocketAccepte("Serveur") // ThreadExécute(Canal, threadNormal, ProcédureGestion, canal) SAI_Activite = SAI_Activite + "Connexion en attente sur " + Canal // ProcédureGestion(Canal) Gestion_connexions(Canal) FIN FIN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 PROCEDURE Gestion_connexions(canal) sMessage est une chaîne sIp est une chaîne = SocketClientInfo(canal,SocketAdresse) SAI_Activite = SAI_Activite + "Gestion de la connec : " + sIp // Lecture des messages BOUCLE SI SignalAttend("TERM",5) ALORS SORTIR sMessage = SocketLit(canal,Faux,10) // SAI_Activite = SAI_Activite + "Message recup : " + sMessage SELON sMessage CAS "BYE" : // Sortie de l'utilisateur SORTIR CAS "" : // Ce n'est pas une lecture bloquante, on retourne dans la boucle Multitâche(-1) AUTRES CAS : // Message à poster SAI_Valeur_Recue = sMessage FIN FIN // Fermeture de la socket SocketFerme(canal) SAI_Activite = SAI_Activite + "Fermeture Socket"
Avez vous des idées ? Quelqu'un as réussi à faire fonctionner un serveur de sockets Windev avec un client autre ?
Merci
Partager