IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Socket d'écoute/IP, GMT et complexité d'algo


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut Socket d'écoute/IP, GMT et complexité d'algo
    Bonjour

    Aujourd'hui j'ai 3 toute petites questions

    1) Question vraiment très bête mais j'ai beau cherché je ne trouve pas : j'ai un serveur qui écoute un port de manière asynchrone (donc auto-multithreadé?). Il fonctionne correctement, mais je n'arrive pas a récupérer l'IP d'une socket (d'un client qui se connecte au serveur). PS: j'utilise la classe Socket et non pas TcpSocketListener ou autre truc du genre

    2) J'aimerai récupérer un entier qui est le nombre de secondes écoulées depuis le 01/01/1970 (équivalent de $gmt dans mIRC). DateTime.Now. ?? rien ne correspond apparemment.

    3) J'ai une collection (par exemple List<T>). L'appel de la propriété .Count (qui retourne le nombre d'élément présents dans la collection) est une valeur lue ou calculée (en gros, si j'ai 1 million d'élément dans ma liste, appeler .Count si long qu'il vaut mieux avoir sa propre variable de comptage ?)

    Merci d'avance pour ces réponses, je galère un peu^^

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par Baud10 Voir le message
    2) J'aimerai récupérer un entier qui est le nombre de secondes écoulées depuis le 01/01/1970 (équivalent de $gmt dans mIRC). DateTime.Now. ?? rien ne correspond apparemment.
    Il faut calculer la différence entre aujourd'hui et la date du 01/01/1970. Ca te donnera un objet TimeSpan et ainsi le nombre de secondes écoulées. Tu trouveras des sujets à ce propos avec une petite recherche je pense.

    Citation Envoyé par Baud10 Voir le message
    3) J'ai une collection (par exemple List<T>). L'appel de la propriété .Count (qui retourne le nombre d'élément présents dans la collection) est une valeur lue ou calculée (en gros, si j'ai 1 million d'élément dans ma liste, appeler .Count si long qu'il vaut mieux avoir sa propre variable de comptage ?)
    Count est une opération en O(1), donc cela ne dépend pas du nombre d'éléments présents dans la liste.

  3. #3
    Membre confirmé Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    2/3 des questions résolues, merci StormimOn.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateTime gmt = new DateTime(1970,1,1);
    string time = Convert.ToInt64(DateTime.Now.Subtract(gmt).TotalSeconds).ToString();
    fonctionne

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Baud10 Voir le message
    1) Question vraiment très bête mais j'ai beau cherché je ne trouve pas : j'ai un serveur qui écoute un port de manière asynchrone (donc auto-multithreadé?). Il fonctionne correctement, mais je n'arrive pas a récupérer l'IP d'une socket (d'un client qui se connecte au serveur)
    C'est la propriété Socket.RemoteEndPoint. Pour récupérer l'IP il faut caster en IPEndPoint et lire la propriété Address

  5. #5
    Membre confirmé Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    J'avais trouvé cette propriété, mais je n'avais pas réussi a l'utiliser :
    Je faisais maSocket.RemoteEndPoint.*
    Et je ne trouvais pas ce qui convenait, alors que .ToString() fonctionne

    Je ne m'y fais pas aux instances de classes qui retournent des valeurs, ici maSocket.RemoteEndPoint retourne un EndPoint; Ce EndPoint retourne une String (ip:port), impossible a deviner avec la complétion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. connexion et écoute sur sockets, threads etc
    Par frenchlion dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2013, 19h51
  2. Réaliser une écoute en continue des sockets
    Par Curvano dans le forum MATLAB
    Réponses: 0
    Dernier message: 20/04/2011, 18h46
  3. Fermer détruire les sockets en écoute
    Par tululululu dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 15/06/2010, 13h42
  4. Réponses: 3
    Dernier message: 10/11/2008, 12h22
  5. Socket UDP: écoute sur un seul port?
    Par toninlg dans le forum C#
    Réponses: 3
    Dernier message: 04/12/2007, 08h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo