si, sûrement... mais pour ça tu devrais plutôt demander dans le forum Java
si, sûrement... mais pour ça tu devrais plutôt demander dans le forum Java
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
C'est fou qu'on ne puisse pas developper une application aussi simple sous Windows 2000.
Il doit y avoir d'autre moyen. Comment faisait les développeurs avant l'arrivé de Windows XP SP2 ?
PS : En java ca prend 2 lignes ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ServerSocket server = new ServerSocket(int port); Socket client = server.accept();
Pour écrire ça en .Net, ça prend aussi deux lignes, (EDIT : trois) mais je ne vois pas du tout le rapport avec ta demande initiale :
Je te rappelle que tu cherchais un Listener Http, donc capable de traiter le protocole Http; maintenant du dis que l'écoute sur un port te suffit; désolé mais c'est le jour et la nuit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 TcpListener listener = new TcpListener(port); //80 pour http listener.Start(); Socket client = listener.AcceptSocket();
Quant à ta comparaison, il faudrait examiner sa validité de près : tu es sur que tes deux lignes fonctionnent aussi sur une JVM d'il y a 7 ans ?
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Il te manque un listener.Start() avant l'AcceptSocket.
Est-ce si difficile de spécifier qu'on écoute sur ce port mais pour un protocole particulier (HTTP) ?
Ok, j'ai oublié.
Le TcpListener, il écoute des protocole Tcp; la façon dont tu traites le contenu Tcp à plus haut niveau l'indiffère complètement.Est-ce si difficile de spécifier qu'on écoute sur ce port mais pour un protocole particulier (HTTP) ?
Tu lui dit d'écouter sur le 80, il écoute sur le 80; il n'a aucune raison d'effectuer une quelconque validation relevant d'une couche supérieure.
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Quelques rappels théoriques sur l'architecture des réseaux seraient utiles je crois...
http://fr.wikipedia.org/wiki/Modèle_OSI
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Peut être, mais je ne suis pas sur que une comparaison modèle OSI (*) vs stack TCP soit précisément le rappel dont il ait besoin.
Accessoirement, il y a quelques erreurs et imprécisions dans l'article : X25 est en couche 2 alors que ce protocole opère (opérait )en couche 3; la couche 2 habituellement utilisée dans ce cas (LAPB ou LAPD) étant omise.(même si elle n'est réalité qu'un sous-ensemble de HDLC, qui lui est mentionné).
Sans même parler de l'inventaire à la Prevert de la couche 1 : on mélange du CSMA/CD (vrai "couche 1") avec de la "paire torsadée" (sur laquelle, selon toute probabilité, on va utiliser du CSMA/CD).
(*) ca m'a toujours beaucoup amusé que OSI de l'ISO donne en français ISO de l'OSI
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Opère encore, mon client l'utilise par exempleX25 est en couche 2 alors que ce protocole opère (opérait) [...]
C'est notamment utilisé pour la communication entre les équipements des opérateurs de téléphonie mobile
Bref, je mentionais cet article juste pour rappeler que TCP est un protocole de transport (couche 4) alors que HTTP est un protocole d'application (couche 7).
Mais c'est vrai que l'article contient quelques énormités, comme HTML dans la couche 6... depuis quand HTML est un protocole ???
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
J'ai une autre question pour mon programme.
Il doit s'executer sur un server, mais lorsque je démarre mon programme dans une session, dès que je ferme la session, mon programme se ferme aussi.
Comment faire pour que cette application soit lancé dès le démarrage du server, qu'un session soit ouverte ou non, et surtout qu'il reste ouvert lorsqu'on ferme une session ?
Le transformer en service (ce qui est normal pour une application serveur).
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Créer un projet de type Service Windows, ajouter un serviceInstaller (pour ne pas avoir à créer un programme d'installation spécifique - cela se fait via un lien en bas du propertygrid) et créer un point d'entrée d'où appeler la DLL qui contient la logique de communication de ton programme actuel.
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
J'ai créer un projet de type "Windows Service" et je lui ai rajouter un item de type "Installer Class" ainsi qu'un référence au projet que je veux faire tourner en permanence.
J'ai donc :
Service1.cs
Installer1.cs
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 public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { } protected override void OnStop() { } }
Quand j'essaie de lancer cette application (comme décrite ci dessus), j'obtiens l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [RunInstaller(true)] public partial class Installer1 : Installer { public Installer1() { InitializeComponent(); } }
Questions :Impossible de démarrer un service à partir de la ligne de commande ou d'un débogueur. Un service Windows doit tout d'abord être installé (en utilisant installutil.exe), puis démarré avec l'Explorateur de serveurs, l'outil d'aministration des services Windows ou la command NET START.
- Est-ce dans la méthode "OnStart" de la class "Service1" que je dois lancer le formulaire qui doit tourner en permanence?
(new Scalco___IDoc.iDocForm()- Comment dois-je faire pour installer le service ?
- Dans la méthode OnStart, tu démarre le thread qui va écouter ton port TCP.
Tu dois démarrer un thread, car la méthode OnStart doit retourner, sinon on considère que le service est en time-out (il me semble).
(je ne comprends pas ton truc de formulaire ...).
- pour installer le service, tu fais comme le dit Mr Bill, utilise la commande installutil (qui est sur le répertoire du framework, de mémoire).
- Dans la méthode OnStop, du fais ce qu'il faut pour arrêter proprement ton traitement.
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Alors, là, je n'ai pas la moindre idée.
L'idée d'une application serveur avec un formulaire est assez étrange en elle même : qui dit formulaire, dit interaction utilisateur, or il n'est pas logique de vouloir une interaction utilisateur hors session.
Avant tu nous parlais d'une écoute du port Http, tu n'as jamais parlé d'une interaction utilisateur.
Ceci dit, un service peut interagir avec le bureau, à condition de cocher la case qui va bien, et de le faire tourner avec le compte LocalSystem.
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
En fait le formulaire contient une liste avec des logs (demande du client). Et l'application se réduit en "notifyIcon" près de l'horloge.
J'ai suivi le tutoriel suivant : http://webman.developpez.com/article...swindows/vbnet
J'arrive a créer le service et à l'installer.
Mais lorsque je le lance, mon formulaire ne se lance pas.
Alors que dans le méthode OnStart de mon service, j'ai la ligne de code suivante :
Une petite idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part form = new Scalco___IDoc.iDocForm();
Aucune, car je refuse l'idée même de mettre un formulaire dans un service.
Pour un cas comme le tient, j'aurais créer mon service sans formulaire et créé une application cliente avec le formulaire interrogeant le service (via WCF, ou Net.Remoting).
Ceci dit il y a peut être moyen d'embarquer le formulaire dans le service, mais je ne sais pas comment.
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...
Une réponse vous a aidé ? utiliser le bouton
"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Net.Remoting
Pourrais tu me décrire un peu plus cette méthode ?
(J'utilise le .NET Framework 2.0)
Dans le tutorial http://webman.developpez.com/article...windows/vbnet/, on explique comment démarrer, arreter, suspendre et lister les services windows.
Comment faire par exemple pour récupérer des messages d'erreurs à partir d'un service et de les mettre ensuite dans une List dans un formulaire par ex.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager