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