begin process at 2012 02 10 18:04:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

RESEAU PAR SOCKET EN C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

RESEAU PAR SOCKET EN C

mercredi 26 septembre 2007 à 17:00:39 | RESEAU PAR SOCKET EN C

aziatedu13

bonjour,

je veux faire un truk extremement simple pour certain, mais assez très difficile pour moi..
voila je souhaiterai pouvoir afficher dans une console, une chaine de caractere envoyer par le prog serveur.
je m'explik, 2 application tourne sur le meme pc, une serveur et l'autre client.
le serveur envoie une chaine de caractere via un sockete, et le client la récupere et l'affiche.
c'est trop dur pour moi la....

voici mes 2 code:

coté serveur :

#include <stdio.h>

#include <unistd.h>

#include <arpa/inet.h>

#include <netdb.h>

#include <netinet/in.h>

#include <sys/types.h>

#include <sys/socket.h>

 

 

#define INADDR_ANY "192.168.1.1"

main()

{

int sock,sock2;

struct sockaddr_in adresse;

char buffer[20]="sa marche pas";

adresse.sin_port=1234;

adresse.sin_addr.s_addr="192.168.1.1";

sock=socket(AF_INET,SOCK_DGRAM,0);

bind(sock,(struct in_addr*)&adresse,sizeof(struct sockaddr_in));

listen(sock,5);

sock2=accept(sock,&adresse,sizeof(struct sockaddr_in));

if(write(sock2, buffer, strlen(buffer)) == NULL)

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

else

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

}


coté client :

#include <stdio.h>

#include <unistd.h>

#include <arpa/inet.h>

#include <netdb.h>

#include <netinet/in.h>

#include <sys/types.h>

#include <sys/socket.h>

#define INADDR_ANY "192.168.1.1"

main()

{

int sock,sock2;

struct sockaddr_in adresse;

char buffer[20];

adresse.sin_port=1234;

//strcpy(adresse.sin_addr.s_addr,"192.168.1.1");

 

 

sock=socket(AF_INET,SOCK_DGRAM,0);

connect(sock,&adresse,sizeof(struct sockaddr_in));

read(sock,buffer,20);

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

}

merci de votre aide, et de vos explication.

mercredi 26 septembre 2007 à 23:46:24 | Re : RESEAU PAR SOCKET EN C

gamemonde

Membre Club
//strcpy(adresse.sin_addr.s_addr,"192.168.1.1");

pourquoi en commentaire ton client se connecte null part
jeudi 27 septembre 2007 à 08:31:06 | Re : RESEAU PAR SOCKET EN C

aziatedu13

Je ne pourrai aps refaire des essai, je ne susi pas au bolot jusqua lundi.

masi tu croi que cc'est ça??
le reste est bien écrit???

nouveau developpeur, dans le cadre de ses étude.
lundi 1 octobre 2007 à 09:30:10 | Re : RESEAU PAR SOCKET EN C

aziatedu13


meme avec cette ligne, le prog ne marche pas....je ne sait vraiment pas comment faire et pourquoi sa bug...
j'ai des warning comme quoi, l'argumlenet 2 de connect n'est pas compatible, alors que je met bien une adresse IP...j'ai essayer beaucoup de chose comme strcopy, ou meme sans strcopy du style adresse.adresse.sin_addr.s_addr = "192.168.1.1";

masi rien n'y fait....


AIDER MOI SVP !!

nouveau developpeur, dans le cadre de ses étude.
mardi 2 octobre 2007 à 14:25:46 | Re : RESEAU PAR SOCKET EN C

Bug_Bug


SERVEUR:

 

aziatedu13 à écrit: > #define INADDR_ANY "192.168.1.1"

 

C'est quoi ça ? (déjà tu l'as définie son l'utiliser dans ton code)

Dans un serveur on n'as pas besoin de présiser l'IP car c'est le client qui ce connecte au serveur. (C'est le client qui a besoin de connaître l'adresse du serveur).

On utilise donc la constante INADDR_ANY comme ceci:

sin.sin_addr.s_addr = INADDR_ANY;    ou bien

sin.sin_addr.s_addr = htonl (INADDR_ANY);

 

aziatedu13 à écrit: > adresse.sin_port=1234;

Non ! il faut utiliser la fonction htons (Host to Network Short) pour transformer la valeur en "Host Byte Order", cf: http://www.chez.com/vidalc/lf/socket.html  (la partie structs),

Donc il faut faire:

adresse.sin_port = htons (1234);

 

Et aussi faut revoir les arguments de ton connect() (dans le client) ; il y plein d'autres erreurs dans ton code (serveur et client). Il n y a pas de gestion d'erreurs dans ton code pour voir d'où viens les erreurs !

 

Je te conseille Donc de voir et essayer de comprendre cette source que j'ai mis sur ce site:  http://www.cppfrance.com/codes/COMMUNICATION-CLIENT-SERVEUR-TRANSMITION-DONNEES-TRAMES-SOCKETS-LANGAGE_44025.aspx

 

C'est du code portable, il compile sous windows et linux

 

Ensuite d'essayer d'améliorer ton code. Puis si t'as des questions pose les.

 

 



Cette discussion est classée dans : buffer, include, adresse, sock, struct


Répondre à ce message

Sujets en rapport avec ce message

client serveur [ par elanspeech ] Bonjour,Je suis en train de programmer un petit client serveur en C pour windows avec dev-c++. J'obtiens l'erreur suivante a la compilation : D:\DEV-C [socket et api win]recevoir et envoyer en meme temps [ par shadow1779 ] Bonjour je me suis fais un petit programme irc qui me servira de bot pour auto-op des personne ou d'autre taches diverses, le client aura une boite de demande d'aide [ par erb211 ] je veut que quelqu'un me corrige ce programme de chat (client/serveur):================ server.c ================ #include #include #include #include client serveur echange de donne [ par bapdur ] voici la version dun client et dun serveur que je fais pour un jeu mais les donnes son envoyer en continu jaimerais aire en sorte que si je tape un ca requette [ par baby3378 ] bonjous, voila, j'ai trouvé un code sur ce site qui permet de faire une requette html (port 80) sur un server, sauf que je voudrai savoir comment fair Recuperer contenu requete http [ par fredsor ] Bonjour, Je voudrais me connecter a mon serveur local afin de recuperer le contenu par exemple d'un fichier txt.Grace a un code trouvé sur le site, j' Problème de connexion Socket [ par qhhu ] Bonjour !En temp normal, je programme en java, mais j'ai voulu essayer le c++parce que je trouve que c'est interessant de connaître plusieurs language socket trop lents [ par cid7777777 ] bonjour,jessaye de faire un jeu qui peu se jouera 2 en reseau local.je ne connais absolument rien en reso, mais en fouillant sur le net,  jai trouver Decompression JPEG [ par aziatedu13 ] bonjour,Je cherche a faire une fonction de décompression en Jpeg to BMP.J'ai pris quelque exemple masi un problème me bloque.voici tout d'abord ma fon multicast en c sous windows [ par tenrod ] Bonsoir a tous,voila j'ai un petit (voire un gros) pb avec le développement d'une application me permettant de faire du multicast en c sous windows.J'


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,262 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales