SOCKET SERVEUR ! help !

SOCKET SERVEUR ! help ! - C - Programmation

Marsh Posté le 21-04-2010 à 18:20:31    

bonjour,  
je doit réaliser un programme pour mon projet, mais je ni arrive pas  
enfaite, j'ai un serveur socket qui reçoit des données ( caractère ) des socket client, et je doit faire en sorte que mon socket serveur reçoit des données ( des caractère ) de l'IP " 98.12.xx.xx " (client) et ensuite envoyer automatiquement ces même données à l'adresse IP " 45.23.xx.xx " (client aussi ) . Tous cela dans le même programme, sous LINUX et en C .
Je suis très nul en dévelopement, donc si qelqun pouvait m'aider !! merci.  
 
voila mon socket serveur en C sous LINUX:
 
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdlib.h>
#include <string.h>
#define MAXNOM 32
 
main (argc, argv)
int argc;
char **argv;
{
int sd,lacc,nsd;
struct sockaddr_in adsock,adacc;
struct hostent *hptr;
struct servent *sptr;
char machine[MAXNOM + 1];
char *prog;
 
prog = argv[0];
gethostname(machine, MAXNOM);
 
if ((hptr = gethostbyname(machine)) == NULL)  {
        perror("Probleme host inconnu " );
        exit(1);
        }
 
bzero( (char*) &adsock, sizeof(adsock) );
adsock.sin_family = hptr->h_addrtype;
 
 
if ((sptr = getservbyname("testsocket","tcp" )) == NULL) {
       perror("Probleme service inconnu" );
       exit(1);
       }
 
adsock.sin_port = sptr->s_port;
 
if ((sd=socket(AF_INET,SOCK_STREAM,0))<0) {
       perror("Probleme creation de la socket" );
       exit(1);
       }
 
if ((bind(sd,(struct sockaddr *)&adsock,sizeof(adsock))) < 0) {
       perror("Probleme de bind" );
       exit(1);
       }
 
listen(sd,5);
 
for (;; ) {
       lacc = sizeof(adacc);
 
       if ((nsd = accept(sd,(struct sockaddr *)&adacc,&lacc)) < 0)  
        {
               perror("Erreur sur l'accept" );
               exit(1);
               }
 renvoi(nsd);
 }
}
 
int renvoi(s)
int s;
{
char buf[256];
int l;
 
if ((l = read(s,buf,sizeof(buf))) <= 0) return(0);
buf[l] = '\0';
write(s,buf,strlen(buf));
write (1, "Recu : ", 8);
write (1, buf, strlen(buf));
write (1, "\n", 1);
write (1, "\n", 1);
return(0);
}

Reply

Marsh Posté le 21-04-2010 à 18:20:31   

Reply

Marsh Posté le 21-04-2010 à 21:46:52    

Bonsoir,
 
 
Ce petit tutoriel devrait t'expliquer comment fonctionnent les sockets réseaux : http://bien-programmer.fr/reseaux.php
 

Reply

Marsh Posté le 22-04-2010 à 00:47:04    

oui j'ai déja lu plein de tuto, mais les socket ji comprend vraiment rien :( .
Personne peut me taper ce code pour réaliser la tâche qe je souhaite?

Reply

Marsh Posté le 22-04-2010 à 00:58:26    

Salut,

 

Je vais être méchant mais si tu comprends pas ce que tu fais, pas la peine de tricher en demandant à d'autres personnes de te le faire. Un petit coup de Google m'a permis de retrouver "ton" code : http://rangiroa.essi.fr/cours/rese [...] ockets.pdf

 

Si tu sais pas le coder, abandonnes. C'est pas ici qu'on fera ton boulot à ta place :)


Message édité par WiiDS le 22-04-2010 à 00:58:37

---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 22-04-2010 à 08:21:03    

rachel95 a écrit :

oui j'ai déja lu plein de tuto, mais les socket ji comprend vraiment rien :( .
Personne peut me taper ce code pour réaliser la tâche qe je souhaite?


 
 
As tu lu celui que je t'ai donné en lien ? Il est très bien expliqué, avec des algos et des exemples. Et en plus, c'est bien codé. Comme dit ci-dessus, si tu n'arrives pas à comprendre avec ce tutoriel, inutile de continuer plus loin, car tu seras bloquée sur des problèmes plus complexe que l'établissement d'une connexion réseau.

Reply

Marsh Posté le 03-05-2010 à 08:34:15    

bon ben tanpi, ji arive pas.  
snif :'(

Reply

Marsh Posté le 03-05-2010 à 11:53:30    

Reply

Marsh Posté le 03-05-2010 à 11:53:55    

rachel95 a écrit :

oui j'ai déja lu plein de tuto, mais les socket ji comprend vraiment rien :( .
Personne peut me taper ce code pour réaliser la tâche qe je souhaite?

Non, sur ce forum, c'est rigoureusement interdit.
C'est un forum d'aide, pas un forum de faiseurs de boulot a votre place.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed