• STATISTIQUES
  • Il y a eu un total de 0 membres et 46469 visiteurs sur le site dans les dernières 24h pour un total de 46 469 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Bright Shadows
    JavaScript: 13, Exploit: 27, Crypto: 69, CrackIt: 52, Stegano: 67, Flash: 3, Programming: 16, Java-Applet: 10, Logic: 20...
    Challenges
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [FR] apprendre-a-manipuler
    Site d'apprentissage de la manipulation d'autrui.
    Hacking
    [EN] Defcon
    Lancé en 1992 par Dark Tangent, DEFCON est la plus ancienne et la plus grande conférence underground de...
    Hacking
    [FR] Hackfest
    Le Hackfest est un évènement de sécurité et de piratage informatique au Québec reg...
    Hacking
    [EN] hax.tor
    50 level de challenges mélangés
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[C] Serveur multi-clients
09-10-2012, 19h28 (Modification du message : 09-10-2012, 19h28 par Creepy_p0ney.)
Message : #13
Creepy_p0ney Hors ligne
chef des poneys voodoo
*



Messages : 146
Sujets : 9
Points: 24
Inscription : Dec 2011
RE: serveur multiclients
Le lien que tu asdonné est mort, mais je l'ai déjà lu donc c'est pas grâve donc voilà où j'en suis
Code :
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
typedef struct
{
   int sock;
   char name[64];
}Client;
int main(){
    
    
    int reals;
    int sin_size;
    int sockfd;
    struct sockaddr_in their_addr[5];
    int i=0;
    int ret=0;
    char buf[64];
    char *pass[5];
    char *pseudo[5];
    char msg[64];
    int k=0;
    int m=0;
    int max=0;
    Client clients[5];
    fd_set fd;
    fd_set cfd;
    struct sockaddr *addr;
    char *log="tim";
    struct sockaddr_in my_addr;
    pid_t pid;
    if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0){
        perror("socket");
        exit(1);
    }
    my_addr.sin_family=AF_INET;
    my_addr.sin_port=htons(2300);
    my_addr.sin_addr.s_addr=INADDR_ANY;
    
    if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr_in))<0){
        perror("bind");
        exit(1);
    }
    listen(sockfd,5);
    printf("attente d'un client");
    sin_size = sizeof(struct sockaddr_in);
    printf("%d\n",i);
    while(1){
        int l=0;
        int n=0;
        
        FD_ZERO(&fd);
        FD_SET(sockfd,&fd);
        for(l=0;l<=i;l++){
            FD_SET(clients[l].sock,&fd);
        }
        printf("nous y sommes3\n");
        for(n=0;n<=i;n++){
            if(max<clients[n].sock){
                max=clients[n].sock;
            }
        }
        if(max<sockfd)
            max=sockfd;
        printf("%d",max);
        if((ret=select(max,&fd,NULL,NULL,NULL))==-1){
            perror("select");
            exit(1);
        }
        printf("nous y sommes2\n");
        if(FD_ISSET(sockfd,&fd)){
            printf("here we are\n");
            sin_size=sizeof(struct sockaddr_in);
            clients[i].sock=accept(sockfd,(struct sockaddr *)&their_addr[i],&sin_size);
            send(clients[i].sock,"login :",64,0);
            reals=recv(clients[i].sock,buf,64,0);
            buf[reals]='\0';
            strncpy(clients[i].name, buf, 64 - 1);            
            i++;
            
        }
        else if(ret==0){
            printf("problem?");
        }
        else{
            printf("here we are9");
            for(k=0;k<=i;k++){
                if(FD_ISSET(clients[k].sock,&fd)){
                    int j=0;
                    printf("here we are5\n");
                    reals=recv(clients[k].sock,buf,64,0);
                    printf("here we are6\n");
                    if(reals==0){
                        close(clients[k].sock);
                        i--;
                    }    
                    else{    
                        buf[reals]='\0';
                        printf("%s",buf);
                        printf("here we are7\n");
                        strncpy(msg,clients[k].name,64-1);
                        strncat(msg,buf,64-strlen(msg)-1);
                        printf("here we are8\n");
                        for(j=0;j<=i;j++){
                            send(clients[j].sock,msg,64,0);
                        }
                    }
                }
            }
        }

    }        
        


    
}
je galere avec les pseudos donc j'ai fait comme ça (c'est pas grâve comme c'est en local)
*edit j'ai réussi pour les pseudos, mais y'a quelques gros bugs (peut être parce que je test 2 clients sur le même pc) maissi t'as ton code commodor je le veux bien
Penser que coder est coder explique-t-il la recursion ?
http://p0neyland.wordpress.com/
+1 (0) -1 (0) Répondre


Messages dans ce sujet
[C] Serveur multi-clients - par Creepy_p0ney - 07-10-2012, 16h52
RE: serveur multiclients - par Ark - 07-10-2012, 17h14
RE: serveur multiclients - par Swissky - 07-10-2012, 17h35
RE: serveur multiclients - par Creepy_p0ney - 07-10-2012, 17h39
RE: serveur multiclients - par Ark - 07-10-2012, 19h12
RE: serveur multiclients - par Commodor - 07-10-2012, 21h04
RE: serveur multiclients - par Creepy_p0ney - 08-10-2012, 19h03
RE: serveur multiclients - par Commodor - 08-10-2012, 19h23
RE: serveur multiclients - par Creepy_p0ney - 08-10-2012, 19h26
RE: serveur multiclients - par Commodor - 08-10-2012, 19h32
RE: serveur multiclients - par Dobry - 08-10-2012, 22h29
RE: serveur multiclients - par Commodor - 08-10-2012, 22h47
RE: serveur multiclients - par Creepy_p0ney - 09-10-2012, 19h28

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [C] serveur irc (non terminé) fr0g 0 101 21-05-2014, 22h27
Dernier message: fr0g
  [C] Un mini-serveur HTTP -Moloch- 11 640 19-04-2013, 14h22
Dernier message: notfound
  [C] Socket Client-Serveur -> Write() + Read() sakiir 7 447 18-03-2013, 07h19
Dernier message: sakiir
  [C] Programme Serveur/Client Creepy_p0ney 1 296 13-10-2012, 14h13
Dernier message: Creepy_p0ney

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut