begin process at 2010 02 10 00:58:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > CONNECTION CLIENT SERVEUR AVEC WINSOCK SANS MFC

CONNECTION CLIENT SERVEUR AVEC WINSOCK SANS MFC


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :7 085 / 2 105

Auteur : Spiffou

Ecrire un message privé
Site perso
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

Les Membres Club peuvent 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

 Sources du même auteur

Source avec Zip CHAT CLIENT/SERVEUR AVEC WSAEVENT EN CONSOLE

 Sources de la même categorie

Source avec Zip TIM_RESEAU, CLASSES POUR RESEAU COMPLET par williamallas
Source avec Zip INTERNET IP FINDER TROUVER VOS ADRESSE IP (INTERNET) par xmustapha
Source avec Zip CLIENT/SERVEUR AVEC TSOCKETSERVER & TCLIENTSOCKET par xmustapha
Source avec Zip REMOTE SHELL GEN par ganjarasta
PROXY IRC SIMPLE (WINDOWS/WINSOCK) par _michel

Commentaires et avis

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.

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...

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++ ;)

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...)

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+

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)

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...
^^

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

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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,608 sec (4)

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