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:
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.