SOCKET

aziatedu13 Messages postés 19 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 février 2008 - 25 sept. 2007 à 13:55
BlackWEvan Messages postés 2 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 4 février 2009 - 4 févr. 2009 à 20:44
bonjour,
je cherche a transmettre le contenu d'un buffer a travers le reseau,

je crée donc un soket , masi g beaucoup de mal a lui donner un nom, une adresse ip, et un numéro de port...je suis donc un peu perdu......
je programme en C sur un kernel 2.6.5 smp

merci de votre aide !!!!

2 réponses

aziatedu13 Messages postés 19 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 février 2008
26 sept. 2007 à 15:30
j'ai essayer ce code, masi rien a faire ça ne marche pas.....
le buffer est toujours vide a la reception....

je suis sur un kernel  2.6.5 smp

#include <winsock2.h>


#include <stdio.h>


#include


#include


#include <netdb.h>


#include <netinet/in.h>


#include <sys/types.h>


#include <sys/socket.h>


 


 


#define INADDR_ANY "192.168.1.1"


 


//global variable


int Socket1,SocketClient;


//end global variable


void initializes_socket(int port)


{


//variables


struct sockaddr_in name;


int name_lenght = sizeof (name);


//end variables


 


//create socket


Socket1 = socket (AF_INET,SOCK_DGRAM,0);


if (Socket1 ==0)


printf("Erreur lors de la création de la socket : erreur %d.\n\n", 1);


else


printf ("Socket créée avec succès.\n\n");


//end create socket


//bind socket


name.sin_family = AF_INET;


name.sin_port = htons (port);


name.sin_addr.s_addr= htonl(INADDR_ANY);


if (bind (Socket1, (struct sockaddr *) &name, sizeof (name)) == NULL)


printf("Erreur lors du bind de la socket : erreur %d.\n\n", 1);


else


printf("Bind de la socket réalisé avec succès.\n\n");


//end bind socket


//socket in listen mode


if (listen (Socket1, SOMAXCONN) == NULL)


printf("Impossible de mettre la socket en mode écoute : erreur %d.\n\n",1);


else


printf ("Socket en mode écoute.\n\n");


//end socket in listen mode


//socket accept incoming connection


if ((SocketClient accept (Socket1, (struct sockaddr *) &name, &name_lenght)) NULL)


printf("Connexion cliente refusée : erreur %d.\n\n", 1);


else


printf ("Connexion cliente acceptée.\n\n");


//end socket accept incoming connection


}


void receive_data_from_a_connected_socket(char *buffer)


{


 


if (recv (SocketClient, buffer, sizeof(buffer), 0) == NULL)


printf("Impossible de recevoir depuis le client : erreur %d.\n\n", 1);


else


{printf ("Reception à partir du client ok.(%s)\n\n",buffer);


printf("buffer = %s ",buffer);


}


}


void send_data_on_a_connected_socket(char *buffer)


{


printf("buffer = %s ",buffer);


if (send(SocketClient, buffer, strlen(buffer), 0) == NULL)


printf ("Erreur d'envoi vers le client : erreur %d.\n\n", 1);


else


printf ("Envoi vers le client ok.\n\n",buffer,SocketClient);


}


int main()


{


char buffer[1024];


char welcome [] = "coucou_c'est_moi\r\n";


initializes_socket(6667);


send_data_on_a_connected_socket(welcome);


memset(buffer,0,sizeof(buffer));


receive_data_from_a_connected_socket(buffer);


 


system("PAUSE");


 


return 0;


}
0
BlackWEvan Messages postés 2 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 4 février 2009
4 févr. 2009 à 20:44
Tu cherche à créer un client qui envoie un message sur le réseau, ou plus un serveur dont le but est plus de répondre au client?

Par ce que le code que tu as mit est celui d'un serveur
0
Rejoignez-nous