Bonjour,
Je viens de me lancer dans la prog socket.
J'ai alors test� mon programme en le lancant dans une console mais lorsque
je l'ajoute dans le service inetd celui ci ne marche plus?

Les lignes que j'ai ajout� dans inetd.conf et services sont :

pserver stream tcp wait root /socket
et........
pserver  973/tcp   # Mon petit programme...

les sources du serveur:
.......
int main()
{
    int server_sockfd, client_sockfd;
    int server_len, client_len;
    struct sockaddr_in server_address;
    struct sockaddr_in client_address;
    server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
    server_address.sin_family = AF_INET;
    server_address.sin_addr.s_addr = htonl(INADDR_ANY);
    server_address.sin_port = htons(973);
    server_len = sizeof(server_address);
    bind(server_sockfd, (struct sockaddr *)&server_address, server_len);
    listen(server_sockfd, 5);
    char ch[50];
        printf("serveur en attente\n");
        client_len = sizeof(client_address);
        client_sockfd = accept(server_sockfd,(struct sockaddr
*)&client_address, &client_len);
        read(client_sockfd, &ch, 50);
.......
.......
        write(client_sockfd, "ok", 50);
        close(client_sockfd);
return (0);
}


et celles du client...


int main(int argc,char *argv[])
{
    int sockfd;
    int len;
    struct sockaddr_in address;
    int result;
    char ch[50]  ;
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = inet_addr("x.x.x.x");
    address.sin_port = htons(973);
    len = sizeof(address);
    result = connect(sockfd, (struct sockaddr *)&address, len);
    if(result == -1) {
        perror("erreur !!!");
            }
    read(sockfd, &ch, 50);
.....
.....
    close(sockfd);
    return (0);
}

Pouvez vous me dire ce qui cloche ????
Aurai je mal configur� Inetd ????

Je vous remercie d'avance de votre aide.



Répondre à