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

Réseau C Discussion :

Envoi structure sur socket


Sujet :

Réseau C

  1. #1
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut Envoi structure sur socket
    Bonjour, je dois créer un petit programme qui doit envoyer des valeurs sur un logiciel. Je dois stocker ces valeurs dans un structure mais je n'arrive pas a l'envoyer.


    pour l'instant j'ai ceci
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    #include <stdio.h>
    #include <stdlib.h>
     
    //<!-- WIN32 -->//
    #ifdef __WIN32__
    #include <winsock2.h>
    #include <winsock.h>
    typedef int socklen_t;
    #else
    # include <sys/socket.h>
    #endif
    //<!-- WIN32 -->//
     
    #include <sys/types.h>
    #define PORT 5451
    #define IP "127.0.0.1"
     
    struct EnvAuto{
    	int id;
    	int num_funct;
    	int res;
    	int value;
    };
    typedef struct EnvAuto EnvAuto;
    int main(void) {
     
    	#if defined (WIN32)
    		WSADATA WSAData;
    		int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
    	#else
    		int erreur = 0;
    	#endif
     
    	SOCKET sock;
    	SOCKADDR_IN sin;
     
    	if(!erreur){
    		/* Créé le socket */
    		sock = socket(AF_INET, SOCK_STREAM, 0);
     
    		/* Config de la connexion */
    		sin.sin_addr.s_addr = inet_addr(IP);
    		sin.sin_family = AF_INET;
    		sin.sin_port = htons(PORT);
     
    		/* Si on peut se co */
    		if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR){
    			printf("Connexion a %s sur le port %d OK \n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
     
    			/* Transmission de données */
    			struct EnvAuto envoi;
    			envoi.id = 0;
    			envoi.num_funct = 11;
    			envoi.res = 214;
    			envoi.value = 1;
     
    			send(sock, (char *)&envoi, sizeof(EnvAuto), 0);
     
    			/* Ferme la transmission entre serveur&client */
    			shutdown(sock, 2);
    			} else {
    			printf("Connexion impossible\n");
    		}
     
     
    		/* Fermeture de la connexion */
    		closesocket(sock);
     
     
    		#if defined (WIN32)
    			WSACleanup();
    		#endif
    	}
    	return EXIT_SUCCESS;
    }
    Je ne vois pas trop ou est ce que je plante, merci de votre aide.

  2. #2
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Quand tu dis que tu n'arrives pas à l'envoyer, c'est a dire? Tu as une erreur? L'envois se passe bien? tu testes pas le retour de ton send, commence par là .
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  3. #3
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Juste après avoir posté, j'ai modifié un peu mon code.

    Je teste le retour avec un if, et l'envoi s'effectue (enfin je pense). Cependant, je dois respecter le fait que c'est une structure a envoyer.

    Et rien ne s'affiche sur le logiciel qui est censé de dire qu'il a recu. Donc je ne sais pas si j'envoi bien ou pas. Le message part mais les infos sont elles bonne ?

  4. #4
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Coté serveur, tu reçois comment les données? tu pourrais poster le code en question?
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  5. #5
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Merci pour ton aide, c'était juste une erreur côté serveur. (de connexion).

    Bonne journée,

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

Discussions similaires

  1. Envoi structure sur socket TCP
    Par BlackVador dans le forum C
    Réponses: 6
    Dernier message: 05/01/2011, 13h15
  2. Envoi d'une structure via sockets
    Par milanoran dans le forum C++
    Réponses: 8
    Dernier message: 17/11/2010, 14h19
  3. Envoi de structure via socket
    Par RoZyk dans le forum Réseau
    Réponses: 4
    Dernier message: 09/11/2010, 10h01
  4. Envoi d'une matrice sur socket UDP
    Par caubios dans le forum Qt
    Réponses: 0
    Dernier message: 10/02/2010, 19h10
  5. envoi fichiers sur socket
    Par hamidoo07 dans le forum Réseau
    Réponses: 3
    Dernier message: 03/06/2009, 20h24

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