begin process at 2012 02 12 10:28:26
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.Net

 > WINSOCK 2 POUR UN CHAT TOUT SIMPLE

WINSOCK 2 POUR UN CHAT TOUT SIMPLE


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :.Net Source .NET ( DotNet ) Niveau :Débutant Date de création :02/01/2003 Date de mise à jour :05/01/2003 09:53:25 Vu / téléchargé :13 618 / 788

Auteur : JCpp

Ecrire un message privé
Site perso
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Le prog. fonctionne bien entre 2 PC.
(Pas essayé avec plusieurs personnes)

Explication pour lancer le programme :
Lancer « IP_serveur », ensuite le client doit avoir dans le programme votre IP et lancer le programme « IP_client »  

Source

  • // client simple
  • #include "winsock2.h"
  • #pragma comment(lib, "ws2_32.lib")
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <string.h>
  • #include <windows.h>
  • #include <iostream.h>
  • char *bufferRecv = new char[800];
  • char *bufferSend = new char[800];
  • int rec;
  • #define IP "XXX.XXX.XXX.XXX"
  • #define PORT 1000
  • main()
  • {
  • printf(" -=[ Client ]=-\n\n");
  • WSADATA WSAData;
  • WSAStartup(MAKEWORD(2,0), &WSAData);
  • SOCKET sock;
  • SOCKADDR_IN sin;
  • sock = socket(AF_INET, SOCK_STREAM, 0);
  • sin.sin_addr.s_addr = inet_addr(IP);
  • sin.sin_family = AF_INET;
  • sin.sin_port = htons(PORT);
  • connect(sock, (SOCKADDR *)&sin, sizeof(sin));
  • do
  • {
  • scanf ("%s",bufferSend);
  • send(sock, bufferSend, strlen(bufferSend), 0);
  • if ((rec = recv (sock, bufferRecv, 64*sizeof(char), 0)) != SOCKET_ERROR)
  • {
  • bufferRecv[rec] = '\0';
  • printf("\n%s\n",bufferRecv);
  • }
  • }
  • while (rec > 0);
  • }
  • ////////////////////////////////////////////////////////////////////////////////
  • // serveur simple
  • #include "winsock2.h"
  • #pragma comment(lib, "ws2_32.lib")
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <string.h>
  • #include <windows.h>
  • #include <iostream.h>
  • char *bufferRecv = new char[800];
  • char *bufferSend = new char[800];
  • int rec;
  • #define PORT 1000
  • main()
  • {
  • printf(" -=[ Serveur ]=-\n\n");
  • WSADATA WSAData;
  • WSAStartup(MAKEWORD(2,0), &WSAData);
  • SOCKET sock;
  • SOCKET csock;
  • SOCKADDR_IN sin;
  • SOCKADDR_IN csin;
  • sock = socket(AF_INET, SOCK_STREAM, 0);
  • sin.sin_addr.s_addr = INADDR_ANY;
  • sin.sin_family = AF_INET;
  • sin.sin_port = htons(PORT);
  • bind(sock, (SOCKADDR *)&sin, sizeof(sin));
  • listen(sock, 0);
  • int sinsize = sizeof(csin);
  • sock = accept(sock, (SOCKADDR *)&csin, &sinsize);
  • do
  • {
  • scanf ("%s",bufferSend);
  • send(sock, bufferSend, strlen(bufferSend), 0);
  • if ((rec = recv (sock, bufferRecv, 64*sizeof(char), 0)) != SOCKET_ERROR)
  • {
  • bufferRecv[rec] = '\0';
  • printf("\n%s\n",bufferRecv);
  • }
  • }
  • while (rec > 0);
  • }
// client simple

#include "winsock2.h"
#pragma comment(lib, "ws2_32.lib")
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <iostream.h>

char *bufferRecv = new char[800];
char *bufferSend = new char[800];

int rec;
#define IP   "XXX.XXX.XXX.XXX"
#define PORT 1000

main()
{       
printf("          -=[ Client ]=-\n\n");
		WSADATA WSAData;
		WSAStartup(MAKEWORD(2,0), &WSAData);
	
		SOCKET sock;
		SOCKADDR_IN sin;

		sock = socket(AF_INET, SOCK_STREAM, 0);	

		sin.sin_addr.s_addr	= inet_addr(IP);
		sin.sin_family	= AF_INET;
		sin.sin_port	= htons(PORT);

		connect(sock, (SOCKADDR *)&sin, sizeof(sin));
        
        do
        {	
		scanf ("%s",bufferSend);
		send(sock, bufferSend, strlen(bufferSend), 0);  

 if ((rec = recv (sock, bufferRecv, 64*sizeof(char), 0)) != SOCKET_ERROR)
                {
                 bufferRecv[rec] = '\0';
                 printf("\n%s\n",bufferRecv); 
                }
        }
        while (rec > 0);
}

////////////////////////////////////////////////////////////////////////////////

// serveur simple

#include "winsock2.h"
#pragma comment(lib, "ws2_32.lib")

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <iostream.h>

char *bufferRecv = new char[800];
char *bufferSend = new char[800];

int rec;
#define PORT 1000

main()
{       
printf("          -=[ Serveur ]=-\n\n");
		WSADATA WSAData;
		WSAStartup(MAKEWORD(2,0), &WSAData);
	
		SOCKET sock;
		SOCKET csock;
		SOCKADDR_IN sin;
		SOCKADDR_IN csin;

		sock = socket(AF_INET, SOCK_STREAM, 0);

		sin.sin_addr.s_addr	= INADDR_ANY;
		sin.sin_family	= AF_INET;
		sin.sin_port	= htons(PORT);

		bind(sock, (SOCKADDR *)&sin, sizeof(sin));
		listen(sock, 0);
		int sinsize = sizeof(csin);

	    sock = accept(sock, (SOCKADDR *)&csin, &sinsize);
       
        do
        {       
         scanf ("%s",bufferSend);
         send(sock, bufferSend, strlen(bufferSend), 0);

if ((rec = recv (sock, bufferRecv, 64*sizeof(char), 0)) != SOCKET_ERROR)
                {
                  bufferRecv[rec] = '\0';
                  printf("\n%s\n",bufferRecv); 
                }
        }
        while (rec > 0);

}  

 Conclusion

Je remercie NerOcrO, de m'avoir donné quelle explication pour finir ce prog.
Pour recevoir un message, il faut envoyer un message car il n'y a pas de bouton envoi.



    

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   IP_client
    • IP_client.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 071 octets
    • IP_client.dspTélécharger ce fichier [Réservé aux membres club]Voir ce fichier3 377 octets
    • IP_client.ncbTélécharger ce fichier [Réservé aux membres club]314 368 octets
    • IP_client.optTélécharger ce fichier [Réservé aux membres club]48 640 octets
    • IP_client.plgTélécharger ce fichier [Réservé aux membres club]1 143 octets
    • IP_client.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier918 octets
    • IP_client.suoTélécharger ce fichier [Réservé aux membres club]10 240 octets
    • IP_client.vcprojTélécharger ce fichier [Réservé aux membres club]3 399 octets
    • IP_clientr.suoTélécharger ce fichier [Réservé aux membres club]7 680 octets
    • WINSOCK2.HTélécharger ce fichier [Réservé aux membres club]Voir ce fichier95 993 octets
    • WS2_32.LIBTélécharger ce fichier [Réservé aux membres club]24 954 octets
  •   IP_serveur
    • IP_serveur.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 184 octets
    • IP_serveur.dspTélécharger ce fichier [Réservé aux membres club]Voir ce fichier3 377 octets
    • IP_serveur.ncbTélécharger ce fichier [Réservé aux membres club]314 368 octets
    • IP_serveur.optTélécharger ce fichier [Réservé aux membres club]48 640 octets
    • IP_serveur.plgTélécharger ce fichier [Réservé aux membres club]1 143 octets
    • IP_serveur.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier914 octets
    • IP_serveur.suoTélécharger ce fichier [Réservé aux membres club]9 216 octets
    • IP_serveur.vcprojTélécharger ce fichier [Réservé aux membres club]3 409 octets
    • WINSOCK2.HTélécharger ce fichier [Réservé aux membres club]Voir ce fichier95 993 octets
    • WS2_32.LIBTélécharger ce fichier [Réservé aux membres club]24 954 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip FASTSCANNERIP
Source avec Zip Source avec une capture Source .NET (Dotnet) INTELLIGENCE ARTIFICIELLE EN C++
Source avec Zip OGL V1.1
Source avec Zip Source avec une capture OGL V1.0
Source avec Zip Source avec une capture JEUX AVEC UN LOUP V1.3 (DIRCTX DRAW 2D)

 Sources de la même categorie

Source avec Zip Source avec une capture ANALYSEUR LEXICAL par Donald180v
Source avec Zip Source avec une capture MAP_MAKER_JEU par seekplus
Source avec Zip Source avec une capture Source .NET (Dotnet) EMISSION D'UN OCTET SUR LE PORT SÉRIE - CLASSE SERIALPORT par jmchatelet01
Source avec Zip Source .NET (Dotnet) RESOLV EQU DE DEGRES N par darckangel731
Source avec Zip Source avec une capture Source .NET (Dotnet) INTEROP XCHAT / .NET : CHARGEUR DE PLUGINS MANAGÉS par TeBeCo

Commentaires et avis

Commentaire de NerOcrO le 03/01/2003 00:37:35

1/ Pourquoi utilises tu winsock 2 ?
2/ Evite les goto, c'est du C, pas du basic.

Commentaire de JCpp le 03/01/2003 12:55:26

Salut,
Bonne Année NerOr0, ça va ?
(Je te trouve partout lol)

1/ Et pourquoi pas, tu me proposes quoi ?
2/ "Evite les goto", je sais  bien que ce n'est pas recommandé.
    J'aurai pu utiliser while(1), ou autre chose, au moins cela a
    l'avantage d'être clair pour tout le monde.
Bref, on ne va pas chipoter pour ci peu.

@+

Commentaire de JCpp le 03/01/2003 13:28:08

J'ai essayé avec une autre version de WINSOCK1.H, et il y a toujours les mêmes bugs.

J'ai modifié:
#include "winsock1.h"
#pragma comment(lib, "wsock32.lib")
et
WSAStartup(MAKEWORD(1,0), &WSAData);

Je ne vois vraiment pas la solution.

Commentaire de JCpp le 03/01/2003 13:28:09

J'ai essayé avec une autre version de WINSOCK1.H, et il y a toujours les mêmes bugs.

J'ai modifié:
#include "winsock1.h"
#pragma comment(lib, "wsock32.lib")
et
WSAStartup(MAKEWORD(1,0), &WSAData);

Je ne vois vraiment pas la solution.

Commentaire de NerOcrO le 03/01/2003 14:57:56

Moi j'utilise &lt;winsock.h&gt;
Et regarde sur le site, il y a une source trop bien pour comprendre, sinon j'ai mes propres sources faite par moi si tu veux.
Tu sais où me trouver, hihi.

Commentaire de Arkeur le 06/03/2003 22:57:56

winsock2.h marche VRAIMENT à partir d'XPet w2k SP3.... Généralement, on utilise winsock2,h pour utiliser non pas des  STREAM mais  plutot les RAW sockets.
Quels est le bug ?

Commentaire de JCpp le 07/03/2003 12:29:53

il y n'a pas de Bug

Commentaire de mitnick le 12/03/2003 02:28:05

que faut il declaré(bout de code en plus) pour que l utilisateur puisse entrer l adresse ip derectement(sans etre obligé de recompiler a chaque fois);

Commentaire de Crew209 le 24/06/2003 23:10:58

char IP[15]
printf("IP : ")
scanf("%s",&IP)

et voila c pas plus compliqué...

Commentaire de leptidev le 26/12/2003 22:23:48

Juste une question :

C koi la différence avec les stream et les raws paquet ?

Ensuite, peut on envoyer d'aures types de données (struct ...) ?

Et doit on mettre plus de données moins vite ou moins de données plus vite pour un même résultat ou cela dépend de la fonction qui extrait les données ?

Commentaire de Chacke le 15/08/2004 02:00:24

Merci JCPP je vais essayé de créer un usercontrol qui fait la tache Merci...
et bonne programmation @U;

Commentaire de the_last_pharaon le 09/04/2005 18:11:22

bon code, mais je ne comprend pk tout s'affiche de façon haché.....
également, le client ainsi que le serveur doivent attendre d'écrire et d'envoyer pour que le message reçu precedemment s'affiche

merci de me répondre    

Commentaire de the_last_pharaon le 09/04/2005 18:33:36

est ce que quelqu'un pourrrait m'expliquer la différence entre printf  et cout outre le fait que l'un provient du c et l'autre du c++.


merci

Commentaire de the_last_pharaon le 09/04/2005 18:46:26

il est préferable d'utiliser les printf que les cout pour les sockets. cout se comporte vraiment bizarement....  

 Ajouter un commentaire




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

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