C++ / Réseaux

salut !
j’aurais besoin de vos conseils avisés pour choisir un bon bouquin de c++. Bon, je connais pas mal Java et j’ai déjà touché au c++ dans la création d’un petit jeu avec la librairie SDL. Mais cette expérience n’a pas fait de moi un pro… J’ai maintenant un nouveau projet, en c++ donc, dans lequel je dois lister et transférer des fichiers à travers un réseau local sous windows NT (protocoles TCP-IP, IPX). Par contre, je ne connais quasiment rien à la prog réseau. Exemple de question que je me pose : suis-je obligé d’avoir 2 progs, à savoir un serveur et un client ?
Voilà, donc le bouquin que je recherche intègrerait une partie réseau, ou au pire j’en prendrais un autre pour le réseau.
merci pour votre aide

Salut,

alors les sockets c pas mal mais …
Corba c’est mieux !!!

http://www.omg.org/
http://www.corba.org/

et pour un ORB gratuit : http://www.orbacus.com/

Chpeux filer une description plus longue si qqun est motivé …

merci à tous !
et bienvenue à toi BaLiSticK ! :wink:

Sisi, c’est très bien C++ :=)
Bon voila des ressources qui te permettront de démarrez la dessus :
http://www.sockets.com , le site obligatoire
apres tu vas sur google chercher un doc qui s’appelle “le guide reseau de beej”, ce peut aider un peu.
Pour les bouquins de C++, tu as le livre de bjarne stroustrup, le createur du langage (C++ hein, pas le C :=) : le langage de programmation C++ . Si tu arrive a tout comprendre dans ce bouquin, ben tu peut deja te considéré comme un mec initié.
Pour les reseaux : deux bouquins :
Windows Sockets Network programming
Winsock 2.0
Le deuxieme etant epuisé depuis pas mal de temps, si tu en trouve un en vente fais moi signe ! :=)
Voila, j’espere que ca t’aidera un peu. Bon courage .

[quote]J’ai du mal à imaginer que ton patron t’ai donné ce boullot alors que tu n’as pas l’air à l’aise ni C++ ni en réseau. Comment ca ce fait que tu t’es retrouvé sur ce projet ?[/quote]Il s’agit de mon stage de fin d’année. Et comme ça été très dure d’en trouvé un, je ne peux pas être difficile !

[quote]LoneWolf, tu n’aimes pas ca, mais je suppose que tu maitrises, non ? Tu sais c’est pareilles pour mon stage, j’ai du être obligé d’accepter de faire une base access, j’aime pas et je préfère largement développé en Java mais je sait le faire sans problème.[/quote]Disons que j’ai appris sur le tas, au bout de 4 ans quoi. Mais par rapport a certains, je ne connais que le minimum. Et puis surtout, j’ai carrement pas envie de faire d’efforts, ca m’interesse pas comme langage. Donc je fais le minimum, ca m’enerve, mais j’en suis a un point ou ca me gave trop…

fin bon.

LoneWolf
Mavie Part II

LoneWolf, tu n’aimes pas ca, mais je suppose que tu maitrises, non ? Tu sais c’est pareilles pour mon stage, j’ai du être obligé d’accepter de faire une base access, j’aime pas et je préfère largement développé en Java mais je sait le faire sans problème.

Ca n’a rien d’extra ordinaire: ca fait 4 ans que je suis dans une boite a faire des PUTAINS de sites web en FUCKING ASP, et malgre le fait que j’ai dit et redit maintes fois que je detestais ca, bah j’ai quand meme des nouveaux projets en ASP, hein…

Sinon, pour ton machin de transfert, y a pas deja une tripote de logiciels qui le font? (et en IPX aussi?)

LoneWolf
Hum c’etait un peu 3615 ma vie, la…

[quote]Pour ce qui est du langage, c’est ce que mon employeur m’a demandé d’utiliser ; donc pour le moment je n’ai pas vraiment le choix. c’est clair que si on m’avait demandé mon avis, j’aurais choisi Java, mais bon…
oui, alors avec que j’ai vu de la prog réseau en c, euh… bah j’ai pas très bien compris.[/quote]
J’ai du mal à imaginer que ton patron t’ai donné ce boullot alors que tu n’as pas l’air à l’aise ni C++ ni en réseau. Comment ca ce fait que tu t’es retrouvé sur ce projet ?

Sinon, sérieux, en java, je te développe ca en 2 semaines maximum pour quelques choses d’impécable sans un seul bug, alors qu’en C++, il faudra plus de quelques semaines avant de supprimer toutes les segfault (je me trompe peut etre dans les durées mais en C++, ca ralonge quand même le temps de développement, encore plus lorsque le développeur ne connait pas parfaitement ce langage)

[Edité le 21/3/2003 par ZGoblin]

Pour ce qui est du langage, c’est ce que mon employeur m’a demandé d’utiliser ; donc pour le moment je n’ai pas vraiment le choix. c’est clair que si on m’avait demandé mon avis, j’aurais choisi Java, mais bon… [quote]le c++ permet quand meme de faire pas mal de trucs en reseau avec des sockets (à la base prévu pour le langage C mais fonctionnant en c++)[/quote]oui, alors avec ce que j’ai vu de la prog réseau en c, euh… bah j’ai pas très bien compris. Mais, je crois que je suis obligé de passer par là.

[quote]Bon, tout dépends de ce que tu apelles transfert de fichiers sur un rezo.[/quote]tout d’abord, le soft devra lister tous les fichiers d’un autre ordinateur dans un répertoire coincident avec la date ; l’utilisateur selectionnera les fichiers qu’il souhaite sauvegarder et en validant, ces fichiers seront copiés et collés sur son ordinateur. En fait, comme avec le navigateur windows lorsqu’on est en réseau seulement dans mon cas ce sera quasiment automatisé.
Merci pour le site, PA-109 mais je n’avais pas trouvé de tutorial traitant de ce sujet. (ou bien j’ai mal cherché)

Je pense que le mieux reste encore les tutoriaux que tu trouvera sur le net
un site pas mal : http://www.cppfrance.com/ .

Bon, tout dépends de ce que tu apelles transfert de fichiers sur un rezo.
Si tu peux utiliser les partages de fichier, rien de plus simple, et là, n’importe quel language fera l’affaire.
(Avec une préférence pour le C#, soit dit en passant)

le c++ permet quand meme de faire pas mal de trucs en reseau avec des sockets (à la base prévu pour le langage C mais fonctionnant en c++)

Le C++ n’est pas ce qui a de plus facile pour la programmation réseau. J’ai aussi créé un jeu en SDL en C++ et depuis, je me suis promis de ne plus toucher à ce langage sauf vraiment si j’ai pas le choix. Pour ton problème, j’ai un copain qui a recherché des exemples, des sources et des bouquins sur la prog réseau en C++ et bien il a quasiment rien trouvé.
Si tu n’as jamais rien touché à la prog réseau, ca va être très dure de faire ca en C++, pourquoi tu ne le fais pas en Java ou en C#, ces langages sont beaucoup plus adaptés, plus simple à programmé et tu trouves pleins de sources sur internet (et si tu as besoins d’aide, je suis là, j’ai fait pas mal de prog réseau cette année)

J’ai un nouveau problème, lorsque je liste le contenu d’un répertoire qui contient beaucoup de fichiers, celui-ci me retourne le bon nombre de fichiers mais certains noms sont des blancs et pour d’autres c’est du charabia. Voici la partie du code qui pose problème :

#include #include #include
int main() {  struct dirent * courant;  DIR *rep;  int i = 0;  int j;  char **tab = NULL;
 tab = (char**)malloc(300*sizeof(char*));    rep = opendir("/temp/03_04_04");  while(courant = readdir(rep))  { tab[i] = courant->d_name; i++;  }    for (j = 0 ; j < i; j++) printf("%s ",tab[j]);
 printf("%d éléments dans ce répertoire ",i);
 closedir(rep); }
Je suppose qu'il s'agit d'un problème de gestion de la mémoire, mais je sais pas trop. Avez-vous une idée ?

[quote]

#include #include #include
int main() {  struct dirent * courant;  DIR *rep;  int i = 0;  int j;  char **tab = NULL;
 tab = (char**)malloc(300*sizeof(char*));    rep = opendir("/temp/03_04_04");  while(courant = readdir(rep))  { tab[i] = courant->d_name; i++;  }    for (j = 0 ; j < i; j++) printf("%s ",tab[j]);
 printf("%d éléments dans ce répertoire ",i);
 closedir(rep); }
  En tout cas, niveau mémoire,
tab[i] = courant->d_name;
, c'est pas classe ....

Ce message a été édité par xentyr le 14/04/2003

[quote]En tout cas, niveau mémoire,

tab[i] = courant->d_name;
, c'est pas classe ....

Ce message a été édité par xentyr le 14/04/2003[/quote]Comment l’aurais-tu tourné ?

[quote]En tout cas, niveau mémoire,

tab[i] = courant->d_name;
, c'est pas classe .... [img]style_emoticons/<#EMO_DIR#>/smile.gif[/img] si ca marchais comme ca : y a pas mieux pour le faire... le problem etant que le readdir ne marche pas comme ca !

le pointeur retourne par readdir n’est valide que jusqu’au prochain appel de readdir… il faut donc que tu copie le contenu de d_name plutot que juste le pointer ! :

while(courant = readdir(rep)) {   /* tab[i] = courant->d_name; Ancien code */  /* alloc taille de la chaine + 1 character */   /* en C, les chaines sont toujours termine par un zero */   tab[i] = (char*)malloc(strlen(courant->d_name) + 1);   /* copie la chaine */   strcpy(tab[i],courant->d_name);   i++; }[/quote]et voila, et n'oublie pas de freer toute cette memoire !!! et si tu est en C++, essaye de voir si il n'y a pas une classe de chaine dynamic (genre CString) ca te permettra d'eviter toute la touille avec le malloc !

Enjoy !

PUtain que je suis content de pas faire du C
DIE MALLOC DIE!

(enfin c’est pas tellement le malloc qui est genant… c’est surtout le free qui doit suivre au bon moment hehehe)
Ce message a été édité par GloP le 15/04/2003

[quote]PUtain que je suis content de pas faire du C
DIE MALLOC DIE! [/quote]c vrais, mais meme en C
sur console on essaye de faire du code 100% sans malloc !
(ben c vrais quoi, c’est un peu con de se demander si on peut allouer de la memoire, alors qu’on SAIT que personne d’autre n’est la : c’est un peu comme frapper a la porte des chiotes qu’en on habite tout seul )

Ce message a été édité par c0unt0 le 15/04/2003