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

Linux Discussion :

[C++] send ( ) entre Win et Linux en tcp.


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut [C++] send ( ) entre Win et Linux en tcp.
    Bonjour,

    Je rencontre une problème assez particulier entre mon windows et mon linux.

    Mon module réseau fonctionne parfaitement au niveau de la connexion des pc entre eux et la detection de l'un et de l'autres cependant une fois la connexion établie je fait des tests d'envois de paquets et la le problème survient.

    Si j'envois un paquet de linux a windows , le pc windows le recois sans problème, mais si je fait l'envois de paquet de windows vers linux à ce moment la le send () ( ou sendto () ) ne fonctionne pas. Le pc linux ne le reçoit jamais et la méthode d'envois me retourne une erreur qui une fois log est : "no such file or directory" .

    Les envois de linux vers windows et windows vers linux s'effectuent de la même maniere. J'ai verifier mon socket l'adresse du destinataire , le contenu du message et tout est convenable. Si j'utilise cela entre deux windows cela fonctionne à merveille.

    Quelle subtilité de linux aurais je homis pour que cela ne soit pas reçu lorsque j'envois des paquets de win vers linux?

    Y aurait t'il des choses spéciales pour les sockets sur linux, ou les ports ( j'ai essayer les ports : 27050 / 32000 / 40000 )?

    Merci d'avance de votre aide ou de vos suggestions.

    Cordiallement

    PS : Les sockets sont à ce moment en TCP.

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par motohime Voir le message
    Les envois de linux vers windows et windows vers linux s'effectuent de la même maniere. J'ai verifier mon socket l'adresse du destinataire , le contenu du message et tout est convenable. Si j'utilise cela entre deux windows cela fonctionne à merveille.
    Et entre deux linux ???

    Citation Envoyé par motohime Voir le message
    Quelle subtilité de linux aurais je homis pour que cela ne soit pas reçu lorsque j'envois des paquets de win vers linux?

    Y aurait t'il des choses spéciales pour les sockets sur linux, ou les ports ( j'ai essayer les ports : 27050 / 32000 / 40000 )?
    Hormis ton h de trop au verbe "omettre", faut juste penser à convertir ton n° de port en entier réseau parce que sinon, tu risques d'avoir des problèmes dus à la représentation interne des nombres (little-endian/big-endian)
    Donc quand tu stockes le n° de port dans le membre sin_port de ton adresse, faut penser à le passer au travers de la fonction htons (host to net short)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adr_serveur.sin_port=htons(no_port);
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut
    Entre deux Linux cela est un peu différent , le probème se situe avant la connexion.
    Entre windows et Linux les broadasts UDP ne posent aucuns soucis tandis que sur 2 linux les broadcasts ne passent pas tous correctements . La connexion TCP peu tout de même s'effectuer mais après pour les paquets TCP le problème est encore différent qu'entre win et linux. Dans le cas de deux Linux les paquets TCP ne passent nullement dans un sens comme dans l'autre.

    cela pourait'il venir du fait que je n'ai pas de DNS dériere.

Discussions similaires

  1. Choix d'un serveur dédié pour usage FTP (win ou linux)
    Par Guigui_ dans le forum Hébergement
    Réponses: 3
    Dernier message: 18/04/2006, 13h40
  2. Différence entre assembleur Windows/Linux
    Par MonsieurAk dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 29/03/2006, 09h19
  3. Script win en linux
    Par suya95 dans le forum Linux
    Réponses: 9
    Dernier message: 25/03/2006, 00h29
  4. [Info]Comparatif serveurs web apache/tomcat, win ou linux
    Par astrofiles dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 31/01/2006, 21h18
  5. Crére un client/serveur sous linux en TCP
    Par Darknicosh dans le forum Développement
    Réponses: 11
    Dernier message: 20/06/2005, 10h19

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