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

C# Discussion :

Protocol web TCP


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 32
    Points : 17
    Points
    17
    Par défaut Protocol web TCP
    Bonjour!

    Je cherche une méthode d'envoi de trame TCP sur le web, J'ai se petit bout de code qui fonctionne en local.

    Maintenant que en LAN se petit code fonctionne bien, je cherche le même protocole TCP mais en sortant du réseau, voyager sur le web à une adresse connu, et un poste connue sur le second réseaux Lan (@ fixe).

    Merci de votre aide.

  2. #2
    Membre habitué

    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Mars 2011
    Messages : 115
    Points : 188
    Points
    188
    Par défaut
    Web ou plutôt Internet? Essayer de connecter d'abord le deux postes sur Internet et vérifier Si le le deux applications (client/Serveur) se connectent bien (A base de Socket ou TcpListner)
    Innovation = Blending of idea , science and practice engineering

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    La connexion internet est faite, je cherche à savoir comment faire pour utiliser le méthodes TcpClient et TcpListener pour les utiliser pour connecter deux postes en passant sur Internet.

    ps: WEB, NET, WAN et internet ne sont pas la même chose?

  4. #4
    Membre habitué

    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Mars 2011
    Messages : 115
    Points : 188
    Points
    188
    Par défaut
    Web se situe plutôt sur la couche application de l'OSI
    Internet est l'ensemble des réseaux connectés par des moyen de communication de longue distance (Satellites, fiber, ...)
    WAN désigne un type de réseau de longue distant comme Internet

    Donc, après la réalisation de l'application,
    1 - Mettre le client dans un réseau LAN1 (Connecté sur Internet)
    2 - Mettre le serveur dans un réseau LAN2 (Connecté sur Internet)
    3 - Tester la connexion entre ces deux si c'est possible (sachant que tu connait l'adresse IP exacte du serveur : t'a dit fixe)
    4 - Si ça ne marche pas, passer sur l'utilisation de DNS; Serveur localisé par un DNS mais pas son IP.Et je pense que tu doit parler à ton FAI pour ça.
    Innovation = Blending of idea , science and practice engineering

  5. #5
    Membre éprouvé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Points : 1 215
    Points
    1 215
    Par défaut
    Je ne comprend pas... le fonctionnement d'un réseau local est le même que celui d'un réseau sur internet. Il n'y a que les adresses IP qui changent. Donc si ton appli marche sur un réseau local, elle marche aussi sur internet.

    Les seuls problèmes qui peuvent se poser sont de l'ordre de la configuration et non de la programmation : ouverture de port sur un routeur, vérifier que le parefeu autorise bien les programmes à se conncecter ou à se mettre en écoute... Mais ce n'est pas du ressort de la programmation en tant que tel.

    The magic of Opera, La magie de l'Opera
    The mysteries of Space Opera, Les mystères de l'Opera Spatial
    Mr. Know-it-all, M. Je-Sais-Tout
    Prelude in C sharp minor, the most beautiful piano song and the best C sharp prelude ever, Prélude en do dièse mineur, le plus beau morceau de piano et le meilleur prélude au C#
    The Mesmerizing Saphir Division for Nerds, L'Hypnotisante Division Saphire pour les Nerds (HDSN)

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Merci pour les détails ^^
    En fait je doit faire de la magie *-*
    Transformer se code là qui fonctionne en réseau local (épuré sans les try,XML,ect...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    System.Net.Sockets.TcpClient tcpclient = null;//Mise à 0 du TcpClient
    String ServeurIP = "192.168.0.150";//@ du serveur
    Int32 ServPort = 1664;//port avec un brin d'ironie sur ma dernière soirée
    tcpclient = new TcpClient(ServeurIP, ServPort);//définition du service
    NetworkStream nstream = tcpclient.GetStream(); //définition des flux
    StreamWriter sw = new StreamWriter(nstream);//écriture
    StreamReader sr = new StreamReader(nstream);//lecture
    String TrameEnvoi = "Bonjour! Je suis client!";//la politesse ;)
    sw.Write(TrameEnvoi);//Envoi!
    sw.Flush();//Vide la mémoire tampon
    String Recept = sr.ReadLine();//écoute et mise en variable
    mEtatTrame.Text = Recept;//affichage...
    /*un dialogue très passionnant*/
    tcpclient.Close();//fin de connexion
    Avec sa je doit le transformer pour aller sur le second poste sur le second réseau en passant par internet.

    Si je comprend bien se que vous me dites, j'aurai que la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tcpclient = new TcpClient(ServeurIP, ServPort);
    à modifier?
    Mais sur le tuto que j'ai trouver, Il ne parlent pas d'autre syntaxe, Si vous la connaissez je suis preneur svp *-*

    Merci de votre aide. ^^

  7. #7
    Membre éprouvé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Points : 1 215
    Points
    1 215
    Par défaut
    Déjà, il te manque un Ensuite, tu n'a rien à modifier, si ce n'est l'adresse IP que tu passe en paramètre. Et vérifier que l'IP sur laquelle tu cherche à te connecter est bien visible depuis Internet.
    Et vérifier aussi que le port sur lequel tu cherche à te connecter est bien ouvert sur la machine sur laquelle tu veux te connecter, et que tu peux y accéder depuis internet en TCP.

    Regarde ici : http://msdn.microsoft.com/en-us/libr...tcpclient.aspx

    Aussi, dit nous quel est le message d'erreur ! ça peut aider

    The magic of Opera, La magie de l'Opera
    The mysteries of Space Opera, Les mystères de l'Opera Spatial
    Mr. Know-it-all, M. Je-Sais-Tout
    Prelude in C sharp minor, the most beautiful piano song and the best C sharp prelude ever, Prélude en do dièse mineur, le plus beau morceau de piano et le meilleur prélude au C#
    The Mesmerizing Saphir Division for Nerds, L'Hypnotisante Division Saphire pour les Nerds (HDSN)

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Merci du lien msdn. Il y a pas mal de base. (j'ai tendance a oublier se que fait Microsoft...)
    J'y ai trouver sa:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TcpClient tcpClientB = new TcpClient ("www.contoso.com", 11000);
    Qui me confirme une connexion dans un domaine, Mais, j'aimerai une connexion sur un poste de se domaine. C'est là que je cloche...

    Merci

    ps: Sa peut marcher si un script PHP lance un exe du serveur?

  9. #9
    Membre éprouvé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Points : 1 215
    Points
    1 215
    Par défaut


    Bon il y a deux possibilités : ou je n'ai rien compris à ce que tu veux faire, ou alors tu te mélange complétement les pinceaux. Mais dans tous les cas tu n'es pas très clair

    Voilà ce que j'ai compris : Tu a une application qui joue le rôle de client, et qui fonctionne en local (par là je comprends : qui arrive à se connecter et à échanger des données avec le serveur, dont l'adresse IP est une adresse du réseau local).

    Maintenant, tu cherches à faire la même chose, mais avec un serveur auquel tu accède par internet.

    Ai-s-je bien tout compris ?

    Si oui je ne comprends pas ça :
    Qui me confirme une connexion dans un domaine, Mais, j'aimerai une connexion sur un poste de se domaine. C'est là que je cloche...
    Et ça encore moins :
    ps: Sa peut marcher si un script PHP lance un exe du serveur?
    Mais que vient faire le PHP ici ???


    Bon j'en déduis que tu voudrais te connecter à un serveur "derrière le domaine" www.contoso.com. le "domaine" n'est qu'un nom DNS, qui cache une adresse IP.

    Donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TcpClient ("www.contoso.com", 11000);
    est la même chose qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TcpClient ([IP CONTOSO], 11000);
    .

    Seulement pour que ça marche, il faut que la machine qui fait tourner le serveur soit directement connecté au net, avec le serveur lancé, et le port 11000 ouvert.
    Ou alors, si le serveur est lancé derrière un routeur, il faut être sur qu'une connection au routeur sur le port 11000 est possible, est que celle-ci est redirigée vers la machine qui fait tourner le serveur, sur le port d'écoute du serveur.
    Mouais c'est pas très clair . Si tu veux en savoir plus, c'est le mécanisme du NAT et du PAT.

    Après je n'ais pas compris ce qui ne va pas. Tu arrive à te connecter ou pas ?
    Si tu n'y arrive pas, quels sont les messages d'erreurs ?

    Si tu y arrive, qu'est-ce qui ne va pas ensuite ?

    The magic of Opera, La magie de l'Opera
    The mysteries of Space Opera, Les mystères de l'Opera Spatial
    Mr. Know-it-all, M. Je-Sais-Tout
    Prelude in C sharp minor, the most beautiful piano song and the best C sharp prelude ever, Prélude en do dièse mineur, le plus beau morceau de piano et le meilleur prélude au C#
    The Mesmerizing Saphir Division for Nerds, L'Hypnotisante Division Saphire pour les Nerds (HDSN)

  10. #10
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Bonjour.

    Je m'explique très mal,et je m'en excuse. je souhaite avoir un lien à une machine derrière un routeur.

  11. #11
    Membre éprouvé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Points : 1 215
    Points
    1 215
    Par défaut
    Et bien tu dois, sur le routeur, ouvrir le port sur lequel tu cherche a te connecter... Ca c'est dans la configuration du routeur... pas du programme !!

    The magic of Opera, La magie de l'Opera
    The mysteries of Space Opera, Les mystères de l'Opera Spatial
    Mr. Know-it-all, M. Je-Sais-Tout
    Prelude in C sharp minor, the most beautiful piano song and the best C sharp prelude ever, Prélude en do dièse mineur, le plus beau morceau de piano et le meilleur prélude au C#
    The Mesmerizing Saphir Division for Nerds, L'Hypnotisante Division Saphire pour les Nerds (HDSN)

Discussions similaires

  1. Protocole MODBUS TCP/IP
    Par probo dans le forum Web & réseau
    Réponses: 12
    Dernier message: 25/01/2019, 09h11
  2. question protocol net.tcp
    Par damii1 dans le forum IIS
    Réponses: 1
    Dernier message: 25/02/2010, 03h38
  3. Envoi caractère 0x00 pour Protocole MODBUS/TCP
    Par nanar06 dans le forum C++
    Réponses: 3
    Dernier message: 31/08/2009, 13h59
  4. Ping sous protocole TCP (et non UDP)
    Par ovdz dans le forum Développement
    Réponses: 2
    Dernier message: 19/06/2003, 14h10

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