Brosske
Messages postés98Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention12 août 2010
-
9 nov. 2007 à 11:28
Brosske
Messages postés98Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention12 août 2010
-
9 nov. 2007 à 13:34
Bonjour,
Je me pose la question si dans une application serveur/client qui communique avec un "Named Pipe" il y a un moyen de savoir si le serveur (ou client) à ecrit quelque chose dans le fichier..... ET
ceci dans un event (càd sans bloquer le cours normal du programme ou devoir utiliser un boucle d'attente).
L'exemple de MSDN est bien, mais ça serait bien mieux si le serveur ne devrait pas tourner à l'infini (enfin jusqu'au moment qu'il reçoit 0 du client).
Brosske
Messages postés98Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention12 août 20101 9 nov. 2007 à 13:03
Voici le bout de code côté serveur (qui attends un message du client):
Do 'Wait for a connection, block until a client connects
res = ConnectNamedPipe(hPipe, ByVal 0)
'Read/Write data over the pipe
cbnCount = 4
res = ReadFile(hPipe, nCount, LenB(nCount), cbnCount, ByVal 0)
If nCount <> 0 Then
If nCount > BUFFSIZE Then 'Client requested nCount bytes
nCount = BUFFSIZE 'but only send up to 20000 bytes
End If
'Write the number of bytes requested
res = WriteFile(hPipe, BigBuffer(0), nCount, cbnCount, ByVal 0)
'Make sure the write is finished
res = FlushFileBuffers(hPipe)
End If
'Disconnect the NamedPipe
res = DisconnectNamedPipe(hPipe)
Loop Until nCount = 0
Même si je change le ReadFile avec ReadFileEx le serveur continuera son loop. N'exite t'il pas un event comme le DataArrival chez les winsock ?
Si non est il possible d'en créer un des event (hola, doucement, car je m'aventure loin là dans un domaine que je ne connais pas du tout).
Brosske
Messages postés98Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention12 août 20101 9 nov. 2007 à 13:34
Pfffff
je donne ma langue au chat....
y a t'il un endroit ou je peux déposer mon code pour que quelqu'un prends le relais pour faire l'exmple ?
il y a 2 codes à déposer :
1. un exemple qui fonctionne avec RedFileEx pour calculer le CRC32
2. l'exemple de MSDN sur les pipes que j'ai masacré - et que je voudrais qu'il fonctionne avec readfileex :(