[tout langage] Surveiller en temps reel une trame

Je me tue à leur dire au boulot, mais j’ai renoncé, on appelle “Temps réel”, par abus de langage tout ce qui se declenche automatiquement, (plus ou moins longtemps arpès un évènement) par exemple on me dit que outlook express t’indique tes nouveaux messages “en temps réel” parcqu’il les checke toutes les 5 Minutes (sic).

Florent42, pou en revenir au sujet, si tu n’a besoin que de “checker” regulièrement les modifs de ton fichiers, ça pourrait être beaucoup plus simple: un process ou un Thread en n’importe quel langage qui “sleepe” entre 1 et 60 minutes pour pas faire ramer la bécane, puis qui lit l’état, ou le contenu du fichier.
évidemment ce serait beaucoup plus beau de se placer directement sur l’évenemt d’écriture système, comme ultraedit qui détecte immédiatement les modifs d’un ficheir ouvert, mais ça me dépasse

ah oui, c’est déjà pas la même chose :o

le soucis c que 1min a 60min c bcp bcp trop long

ds mon tout premier post je parle de client qui appel…

or un appel ca peut durer 10s non?

dc si mon script se declenche toutes les minutes ca va pas du tout du tout

a la rigueur si on se base genre toutes les 1s peut etre que ca peut donner un bon resultat

j ai change mon premier post, malheureusement le fichier que je voulais ne se met pas a jour comme je le voudrais

je suis oblige de fonctionner avec des trames

Au temps pour moi, :ane: j’aurais du mieux lire.

  • Si c’est du sniff réseau que tu veux faire, J’ai vu qu’en Java c’est pas possible, il faut faire du C/C++ comme il a été dit. (ptêt VB?) bref cherche sniff réseau dans le langage de ton choix, ça vaudra mieux qu’une info de 2ème main.
  • Sinon, ya peut-être des contournements, j’ai vu qu’en Java, il était en revanche possible de faire un proxy, et d’intercepter les trames avant de les renvoyer, mais à priori plutôt en HTTP.
  • Enfin, tu parlait de fichiers au début, si ta trame en question conduit à l’écriture d’un fichier, c’est peut-être une piste: checker toutes les secondes la date d’écriture d’un fichier, et pas son contenu c’est peut-être pas si couteux après tout. il faut vérifier que ça ne met pas à genou la bécane (sinon tu va te faire maudire par les admin de ton parc informatique).

Sinon, ça a l’air intéressant comm projet, en utilisant un base de contacts partagées, tu peut avoir la photo du mec et les dates de deriers contact dès qu’il appelle, j’aimerais bien ça au bureau.

bon ce qui est pratique c est que l admin reseau ds ma boite c moi…ce qui arrange pas mal de pb :wink:

La je suis entrain de partir sur les propositions de KarLKoX, la je suis entrain d essayer de faire fonctionner le premier code (en C/C++) pour avoir la liaste des peripherique reseau et deja ca pose pb car apres avoir fini par comprendre comment faire fonctionner visual basic c++ 6, j ai pu enfin creer mon projet non sans mal j arrive pas a ecrire mon fichier .exe, alors que la compilation se passe bien…
(j ai fait un peu de C il y a 2 ans environ ms j ai jms vraiment aimé…) je prefere le php c plus marrant bref…si qq1 a une idee pour mon exe qui ne se cree pas je suis pas contre (http://www.winpcap.org/docs/man/html/index.html le premier code donne pour le tutorial)

De plus pour informations puisque ca semble t interesse je te dis tout deltree:
En fait ma boite (petit : 10 employes) on bosse dans la telephonie. Moi je suis le dernier arrive (je suis en CDD si un patron peut s interesse a moi je suis pas contre) et j ai une formation purement informatique.
Vu qu on parle de plus en plus de convergence voix données (ce qui est vrai je le vois bien) on parle bien sur de plus en plus de Voip et CTI.
Sans parler de la voip qui n est pas le sujet ici, le CTI (couplage telephonie informatique) prends de plus en plus d ampleur.
Il est certain d etre tres interessant de pouvoir gerer le flux donne par le PABX sur le pc et d en faire un peu ce qu on veut. Dans l’immédiat mon but est de relier ce flux a une base de données (php/mysql) que j ai cree qui contient bien sur la totalite des clients. Ainsi on pourrait faire une remontee de fiche.
Malgre tout les constrcuteur de PABX (pour nous principalement Ericsson ms un peu aussi alcatel, matra et tiptel) ont fourni un logiciel proprietaire qui permet de recuperer ces flux du pabx et deja d afficher le numéro, creer un journal des appelants, supervision des postes telephonique de l installation (oui oui du pc)et bien sur la remontee de fiche…le cheval de bataille je dirais.

le petit soucis c est que le programme est developpe pour certain programmes: Excel, Acess, outlook; LDAP et lotus note (qui a dit que c etait princiapelement microsoft qui est represente?)
tout autres solution est bien a exclure ce que j ai trouve dommage depuis le debut

Pour l instant mon but est de faire un truc pour l entreprise programme pour mon intranet ms a terme j aimerais pouvoir avoir un solution un peu passe partout

J ai regarde d un peu plus pres ce matin ce logiciel proprietaire, en fait jusqu a hier je croyais que le journal des appelants etait mis à a jour en "temps reel" malheuresement ce n est pas du tout ca
De plus il ne serait pas forcement plus mal de deprendre du moins de chose possible…deja en passant par winpcap et via la memoire partagee etc etc ca sera deja largement suffisement complique ms au moins ca sera un systeme global sans depedance et pouvant donc fonctionner de facon completement autonome et javoue que ca me plait
voila voila

:super: Merci pour les infos.
J’avais codé une base clients en Notes/Domino, mais il manquait la partie connexion au téléphone, ça les aurait tués si j’avais pu faire ça.
Ceci dit, moi ça fait 8 ans que j’ai plus refait de C, désolé de ne pouvoir t’aider?

dommage que tu fasses plus du C…parce que je comprends pas pk la compile passe mais le build du exe…?

surtout que le code est tout fait j ai rien change j ai pris ca tel quel

Si la compile passe mais que l’éxécutable n’est pas produit, ça ne peut être qu’un problème du linker qui ne trouve surement pas winpcap : tu dois passer le .lib dans les options du linker.

j ai mis le wpcap.lib dans les link pourtant

ou bien…peut qu il le trouve pas?comment peut on tester?

Tu as quoi comme ligne de commandes pour appeler le linker ?

c j ai suivi ca:
[citation]
To create an application that uses wpcap.dll with Microsoft Visual C++, follow the next steps:

* Include the file pcap.h at the beginning of every source file that uses the functions exported by library.
* If your program uses Win32 specific functions of WinPcap, remember to include WPCAP among the preprocessor definitions.
* Set the options of the linker to include the wpcap.lib library file. wpcap.lib is generated compiling the WinPcap source code and can be found in the WinPcap developer's pack.
* Set the options of the linker to include the winsock library file (for example wsock32.lib). This file is distributed with the C compiler and contains the socket functions for Windows. It is needed by some libpcap functions.

Remember that:

* To add a preprocessor definition, you must select Settings from the Project menu, then select C/C++ from the tab control, and under the category General, you must add the definition under the Preprocessor Definitions text box.
* To add a new library to the project with Microsoft Visual C++, you must select Settings from the Project menu, then select Link from the tab control, and then add the name of the new library in the Objcet/library modules editbox.
* To add a new path where Microsoft Visual C++ will look for the libraries, you must select Options from the Tools menu, then Link from the tab control, library files from the show directories for combobox, and the add the path in the directories box.
* To add a new path where Microsoft Visual C++ will look for include files, you must select Options from the Tools menu, then Link from the tab control, include files from the show directories for combobox, and the add the path in the directories box.

[/citation]

puis le code


#include "pcap.h"

main()
{
    pcap_if_t *alldevs;
    pcap_if_t *d;
    int i=0;
    char errbuf[PCAP_ERRBUF_SIZE];
    
    /* Retrieve the device list */
    if (pcap_findalldevs(&alldevs, errbuf) == -1)
    {
        fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
        exit(1);
    }
    
    /* Print the list */
    for(d=alldevs;d;d=d->next)
    {
        printf("%d. %s", ++i, d->name);
        if (d->description)
            printf(" (%s)\n", d->description);
        else            printf(" (No description available)\n");
    }
    
    if(i==0)
    {
        printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
        return;
    }

    /* We don't need any more the device list. Free it */
    pcap_freealldevs(alldevs);
}

voila l erreur:


--------------------Configuration: essai - Win32 Debug--------------------
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/essai.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
essai.exe - 2 error(s), 0 warning(s)

L’erreur vient du fait que tu as surement choisit de faire une application win32 qui requiert le point d’entrée WinMain (d’où l’erreur),
De plus, tu compiles la version debug, change ça en passant par le menu “Build” --> “Set Active Configuration”.
Enfin, compile plutôt avec msvcrt.lib quand tu es sous window : Alt + F7 --> onglet “Link” --> categorie “Input” --> dans “ignore libraries” met “libc.lib”.

effectivement je suis en win32 je me souviens avoir vu ca qd j ai cree mon projet

j essayerais ce que tu me dis ce soir…juste apres le boulot

J’ai oublié de te préciser de choisir un project en mode console plutôt que win32, ca t’évitera d’adapter ton code pour du win32 (bient que ce soit simple à corriger sur le fond)

on peut modifier apres que le projet soit ouvert?

oui mais le plus simple c’est quand même de recréer un nouveau projet “console” vide et d’ajouter ensuite ton fichier source :slight_smile:

bon enfin j ai reussi a compiler et construire mon exe pour le premier code

bon j en suis au 2eme et j ai a nouveau des erreurs du meme genre…faut il a chaque fois creer une autre espace de travail tout neuf pour chaque code?

Oui mais tu peux te simplifier la tâche en ajoutant un nouveau projet dans ton projet en cours : bouton droit sur "Workspace" dans le treeview de gauche, "Add New Project to Workspace".