IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Envoi d'un tableau de char


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 38
    Par défaut Envoi d'un tableau de char
    Bonjour je voudrais faire un master-mind en réseau avec un serveur et un client.

    Je ne comprend pas comment envoyer , par exemple un tableau de char (déjà rempli).
    Je voudrais qu'il s'envoie automatiquement .
    Grâce à ça j'aimerais envoyer des messages pré-enregistrés.

    Pourriez-vous m'aider ?

    Si vous voulez je peux vous poster mon code .

    Merci d'avance.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Alors montrez nous votre code.

    Le réseau en C n'est pas la chose la plus facile, mais il y a de multiples tutoriels sur devellopez.com
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 38
    Par défaut
    Le code serveur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     
    #include<stdio.h>	
    #include<winsock2.h>
    #include<iostream>
    #include <iomanip>
    #include <conio.h>
    #include <time.h>
     
    using namespace std;
     
    #pragma comment(lib,"ws2_32.lib")
     
    #define N 1000
     
    void AfficherUn( int * tab , int n ) 
    {
    	cout <<endl ;
    	for ( int i = 0 ; i < n ; i++ )
    	{	
    		cout <<setw(7)<< tab[i];
    	}
     
     
    }
     
    void Afficher ( int * tab , int nb, char M ) 
    {
    	cout << endl; 
    	cout << " Affichage du vecteur " << M << " \n " ;
    	for ( int i = 0 ; i < nb ; i++ )
    	{
    		cout << " V[" << setw(2) << i << "] " ;
    	}
    	AfficherUn (tab, nb) ;
    	cout <<endl ;
    }
     
    int Combinaison(int * & tab)
    {
    	int nb=4;
    	const int max=10, min=0;
    	tab=new int[nb];
    	for(int i=0;i<nb;i++)
    	{
    		tab[i]=(rand()%(max-min+1));
    	}
    	return nb;
     
    }
     
    void main()
    {
    	WSADATA wsa;  
    	WSAStartup(MAKEWORD(2,0),&wsa);			//initialisation de la socket
     
    	SOCKET server;							// les socket sont associées a une ip et un num de port
    	SOCKET sock;
     
    	SOCKADDR_IN sinserv;					// on cree une struc du type sockaddr 
    	SOCKADDR_IN sin;		
    	int port=1100;
     
    	//initialisation et saisi des informations
    	cout<<"Port : "<<port<<endl;
    	//cin>>port;
     
     
     
    	sinserv.sin_family=AF_INET;	
    	sinserv.sin_addr.s_addr=INADDR_ANY;
    	sinserv.sin_port=htons(port);
     
    	//creation de la socket
    	server=socket(AF_INET,SOCK_STREAM,0);
     
    	//la socket est configuré pour écouter l'adresse et le port saisi
    	bind(server,(SOCKADDR*)&sinserv,sizeof(sinserv));
    	const int M=1000;
    	//pas de file d'attente
     
    	char buffer[N];
    	char essai[M]= "Rouge , Vert , Bleu";
    	listen(server,0);
     
    	int sinsize;
    	int err=0;
    	bool A = true;
     
    	while(1)
    	{
    		sinsize=sizeof(sin);
    		//acceptation ou non des appels
    		if((sock=accept(server,(SOCKADDR*)&sin,&sinsize))!=INVALID_SOCKET)
    		{
    			cout <<"connection Aziz" << endl;
    			while(err>-1)
    			{
     
    				if(A==true)
    				{
    					memset(buffer,0,sizeof(buffer));
    					cin.getline((char*)buffer, N);
    					err=send(sock,buffer,sizeof(buffer),0);
     
     
    					A=false;
    				}
    				else
    				{
    					recv(sock,buffer,sizeof(buffer),0);
    					cout<<buffer;
    					cout<<endl;
     
    					A=true;
    				}
    			}
     
    		}
    	}
     
    }
    Le code client

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    #include<stdio.h>	
    #include<stdio.h>	
    #include<winsock2.h>
    #include <conio.h>
    #include <iostream>
    	using namespace std;
     
    #pragma comment(lib,"ws2_32.lib")
     
    #define N 1000
     
    void Affichercombi(int tab[4])
    {
    	cout<<"|";
    	for(int i=0;i<4;++i)
    	{
    		cout<<tab[i]<<"|";
    	}
    	cout<<endl;
    }
    void main()
    {
    	WSADATA wsa; 
    	WSAStartup(MAKEWORD(2,0),&wsa);	
     
    	SOCKET sock;	
    	SOCKADDR_IN sin;
    	//char ip[15]={"172.22.44.57"};
    	//char ip[15]={"192.168.1.25"};
    	char ip[15]={"192.168.1.25"};
    	int port=1100;
    	int err=0;
     
    	//initialisation et saisi des informations
    	//cout<<"Ip : ";
    	//cin>>ip;	
     
    	/*cout<<"Port : ";
    	cin>>port;*/
     
    	sin.sin_family=AF_INET;
    	sin.sin_addr.s_addr=inet_addr(ip);
    	sin.sin_port=htons(port);
     
    	//creation de la socket
    	sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
     
    	//connexion a la socket
    	if(connect(sock,(SOCKADDR*)&sin,sizeof(sin)))
    	{
    		cout<<"La connection a echoue"<<endl;
     
    		system("PAUSE");
    	} else {
     
    		int err=0;
    		char buffer[N];
     
    		int ess=0;
    		int combi[4]={0};
    		Affichercombi(combi);
    		cout<<"============================="<<endl;
    		bool A=false;
    		cout<<"connexion reussie.."<<endl;
    		while(1)			
    		{
    			if(A==false)
    			{
    				recv(sock, buffer, sizeof(buffer),0);
    				if(buffer[0]=='R')cout<<"bien joue";
    				else{cout<<"jack";}
    				cout<<endl;
    				A=true;
    			}
    			else
    			{
    				memset(buffer,0,sizeof(buffer));
    				cin.getline((char*)buffer, N);
    				send(sock, buffer, sizeof(buffer),0);
    				A=false;
     
     
     
    			}
    		}
    	}
     
    	WSACleanup();
     
    	system("PAUSE");
    }
    Je veux pouvoir tester le tableau de char , que mon client va envoyer au serveur . Et après pouvoir lui retourner les caractères bon , avec leurs positions.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Ce n'est pas du C...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 38
    Par défaut
    Je le sais , c'est du c++ mais je n'es pas vu de rubrique "Réseau" en C++ donc j'ai poster ici , mais cela je pense ne vous empêche pas de m'éclairer ?

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Je dois dire que je ne sais pas où est le problème, dans le sens, vous ne l'avez pas vraiment expliqué ?

    La connexion se fait elle ? Le message est il transmis ?
    Que voulez vous faire ? Qu'appelez vous un envoie automatique d'un tableau ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. retrouver unesuite de caractères dans un tableau de char
    Par petitours dans le forum C++Builder
    Réponses: 17
    Dernier message: 12/07/2005, 23h43
  2. Ansistring et tableau de char
    Par rabbi_jaccob dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/12/2004, 11h51
  3. Envoi d'un tableau par pipe
    Par Chicard dans le forum Développement
    Réponses: 2
    Dernier message: 10/03/2004, 09h47
  4. Adresse d'un tableau de char
    Par Trap D dans le forum C
    Réponses: 8
    Dernier message: 23/12/2003, 12h02
  5. Réponses: 4
    Dernier message: 10/10/2003, 18h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo