[C] comment

Résolu
Laraby -  
 ali -
Bonjour Svp je voudrais savoir comment utiliser le langage C pou écrire un programme qui connecte deux ordinateurs?Puis qu'est-ce que 'pipe'?Au secours et Merci d'avance!!laraby
Configuration: windows 32/16 bits

4 réponses

  1. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    programme de base:

    CLIENT:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h>
    #include <unistd.h>
    
    #define PORT 20100
    
    void main()
    {
        int sk,addrlen,nbr;
        struct sockaddr_in myaddr;
        char buffer[40];
        struct hostent *host_addr;
        char retour[] = "Message retour du client";
    
        //creation socket
        if((sk=socket(AF_INET,SOCK_STREAM,0))== -1)
        {
    	perror("prog client erreur appel socket");
        }
    
        host_addr=gethostbyname("localhost");
    
        myaddr.sin_addr.s_addr=((struct in_addr *)(host_addr->h_addr))->s_addr;
        myaddr.sin_port=PORT;
    //    myaddr.sin_port=htons(PORT);
        myaddr.sin_family=AF_INET;
    
        //demande de connexion
        addrlen=sizeof(struct sockaddr_in);
        if(connect(sk,(struct sockaddr*)&myaddr,addrlen)==-1)
        {
    	perror("prog client erreur appel connect");
    	return;
        }
    
        //reception donnees
        if((nbr=read(sk,buffer,40))==-1)
        {
    	perror("erreur appel read");
        }
        printf("buffer recu: %s\n",buffer);
    
        //repond au serveur
        if((nbr=write(sk, retour,strlen(retour)+1))==-1)
        {
    	perror("erreur appel write");
        }
        if(close (sk)==-1)
        {
    	perror("erreur appel close");
        }
    }
    
    
    

    0
  2. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    SERVEUR:

    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h>
    #include <unistd.h>
    
    #define PORT 20100
    
    void main(void)
    {
        int ls,sk,nbr;
        struct sockaddr_in myaddr;
        struct sockaddr_in remaddr;
        char buffer[40];
        unsigned int addrlen;
        char message[]="Message du serveur";
    
        if (( ls = socket(AF_INET, SOCK_STREAM, 0)) == -1 )
        {
    	printf("erreur appel socket");
        }
        memset (&myaddr, 0, sizeof(myaddr));
    
        myaddr.sin_port = PORT;
    
        myaddr.sin_family = AF_INET;
    
        if ( bind(ls,(struct sockaddr*)&myaddr, sizeof(struct sockaddr_in)) == -1)
        {
    	perror("erreur bind");
        }
    
        if ( listen (ls,1) == -1 )
        {
    	printf("erreur listen");
        }    
        
        addrlen = sizeof(struct sockaddr_in);
    
        if (( sk = accept(ls,(struct sockaddr*) &remaddr,&addrlen)) == -1 )
        {
    	printf("erreur accept");
        }
    
        if ( (nbr=write(sk,message,strlen(message)+1)) == -1 )
        {
    	printf("erreur write");
        }
    
        if (( nbr = read(sk,buffer,40)) == -1 )
        {
    	printf("erreur read");
        }
    
        printf("j ai recu :%s \n",buffer);
    
        close(sk);
        if(close (sk)==-1)
        {
    	perror("erreur appel close");
        }
    
        if(close (ls)==-1)
        {
    	perror("erreur appel close");
        }
    
    }
    
    
    
    

    0
  3. thierno
     
    salut je voulais juste savoir comment écrire un programme qui nous sort les coordonnées de déplacement de la souris sur un graphique ou tracé mathématique c urgent merçi d'avance.Vous me sauvais la face.
    0
  4. ali
     
    comment programmé un routeur filtre de paquets avec c++ puildre
    0