Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONNECTION CLIENT SERVEUR AVEC WINSOCK SANS MFC


Information sur la source

Catégorie :Réseaux & Internet Niveau : Débutant Date de création : 06/11/2004 Date de mise à jour : 06/11/2004 18:43:22 Vu / téléchargé: 6 633 / 2 046

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

petit programme pour débutant sur la programmation socket qui montre avec beaucoup de commentaires comment réaliser une connection client serveur.
Il y a déjà pas mal de source approchant(je m'en suis inspiré), mais devant le manque de doc en francais sur winsock et le peu de commentaires des sources déja en ligne, je me suis dit que ca pourrait intéresser les noobs de winsock comme moi (j'aurais bien aimé trouvé un joli code commenté à mes début...)

pour plus dinfos voila qlq liens:
http://c.developpez.com/WalrusSock/
http://progzone.free.fr

 

Source

  • tout est dans le Zip
tout est dans le Zip

Conclusion

j'espère que ca vous intéressera, mais attention ce prog est BASIQUE, pas d'utilisation de select() pas de chat ni rien de ce genre, c'est vraiment pour commencer... je suis ouvert à tte rques, n'hésitez pas, ca fait tjs progresser.
ps: j commence moi mm en programmation socket alors soyez indulgent svp, et pour les pros qui jettent un oeil à cette source signalez moi les erreurs que je n'ai pas vu ;)...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

06 novembre 2004 18:43:23 :
optimisation du code pour alléger le trafic réseau. on envoi une trame de taille strlen(buffer)+1 au lieu de sizeof(buffer) afin de ne pas envoyer de caractères inutiles

Commentaires et avis

signaler à un administrateur
Commentaire de aardman le 06/11/2004 16:41:32

Salut,
Coté serveur, il faut envoyer strlen(buffer)+1 octets, et non pas sizeof(buffer) octets.. il faut envoyer seulement ce qui est utile.

signaler à un administrateur
Commentaire de Spiffou le 06/11/2004 18:34:37

C'est juste merci pour la rque, je corrige le code.
Il faut quand même dire que étant donné la nature du prog, (qui sert uniquement de tuto) le côté optimisation n'est pas primordial, mais autant prendre les bonnes habotudes deès le début...

signaler à un administrateur
Commentaire de cosmobob le 06/11/2004 19:08:18

salut,
tu peux meme n'envoyer que strlen(buffer) octets pour le serveur, le 0 de fin de chaine etant un poil inutile.
tu devrais du coup modifier le client car en faisant:
recv(C_socket, buffer, sizeof(buffer),0);
printf("%s\n",buffer);
tu supposes que le serveur t'envoie des données qui finissent par 0 (sinon ca affiche n'importe quoi (enfin ca va afficher des caracteres supplementaires)).
il ne faut en fait jamais faire ce genre de supposition, car par exemple, la chaine envoyée par le serveur peut avoir été coupée en deux (si elle est longue notamment, si le traffic internet est surchargé, etc...; ca dépend de parametres exterieurs au programme et qui peuvent conduire a ca)

je te conseille de faire:

int r = recv(C_socket, buffer, sizeof(buffer) - 1,0);
// c'est bien sizeof(buffer) - 1 !! cela assure que
// r est soit négatif (erreur) soit entre 0 et sizeof(buffer)-1
if (r >= 0)
{
   // donc on peut faire ca sans craindre un débordement
  // d'indice.
   buffer[r] = 0; // on place un 0 a la fin des données recues.
   printf("%s\n",buffer);
}
else
{
   printf("erreur lors de la reception\n");
   // il y a eu une erreur, à traiter...
}

et voila...

a++ ;)

signaler à un administrateur
Commentaire de Spiffou le 07/11/2004 02:19:52

ah oui pas mal j'y avait pas pensé, et en plus je l'ai jamais vu dans les sources que j'ai consulté....

j vais essayer de faire la modif demain, par ctre comme tu l'as dit c surtout intéressant quand les chaines sont longues, et dans notre cas y'a peu de chance qu'elles soient coupées.
Mais une fois de plus:
autant prendre les bonnes habotudes deès le début...

merci pour la rque
(c fou ce que ca evolue un soft avec les conseils des autres...)

signaler à un administrateur
Commentaire de CptLuthor le 07/11/2004 16:21:20

Salut

- je voudrai creer un server et un client VPN  en language C ou C++  (
je mi connai un pe en C )
- un .exe qui lance le server et un point .exe qui lance le client , le
client étant le pc dun pot qui habite pas chez moi, on a tous l adsl.
- le server doit pouvoir accepter plusieurs client en meme tps.
- une foi connecter on doit pouvoir se voir en réseau, c a d  que par
exemple si je lance un jeu et que je créé un partie réseau local , le
client doit pouvoir joindre la partie créé par le server.  ( quand on
utilise le VPN de windows XP ca marche  mais le sever XP naccepte que 1
client en meme tps)
- tous ce qui é convivialité, graphic , etc...  je men occuperai, dabord je ve juste le truc le + basic.  merci a+

signaler à un administrateur
Commentaire de CptLuthor le 07/11/2004 16:22:21

( jai réussi a créé en C avec les fonctions socket , bind .. un server
et un client, mon pot arrive a ce conecter a moi mais on se voi pas dans les jeu)

signaler à un administrateur
Commentaire de Spiffou le 07/11/2004 17:55:57

lol c'est la prochaine étape de mon projet, donc je ne suis pas capable de te répondre pour le moment...

je mettrai une source expliquant tout ca dès que j'aurai moi même compris...
^^

signaler à un administrateur
Commentaire de moumouteb le 21/08/2006 19:00:43

Très bonne source pour débuter avec winsock. Mieux que certain long tuto
merci

signaler à un administrateur
Commentaire de thimafa le 15/10/2006 23:37:37

Merci pour cette source "on ne peut plus" commentée ;-)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.