Bonjour j ai un petit souci de serveur TCP sous linux

C est un serveur de calcul assez simple qui marchait sans problème jusqu a ce que j inclue un fork.En effet une fois qu un client se connecte j ai le message suivant sur le serveur:
-succes

Mais si un deuxieme client se connecte j ai le message suivant:
-illegal seek

Que signifie ce message?

Malgré tous les deux client peuvent travailler sans probleme un eptit moment mais au bout d'un moment chaque client reçoit n importe quel information du serveur.
Par exemple un client reçoit le resultat d'un calcul d'un autre client.

J ai fais mes essais en local.Je ne peux pas mettre intégralement mon code parce que j'utilise des fonction inclu dans d autre fichier mais je vais mettre la partie definition des données et le fork.

Je pense que toutes ces erreurs sont dues à une mauvaise utilisation du fork.
Voici le code:


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
 
 
 int main()
 {      	
 
 
 
 
	int sock = socket(AF_INET, SOCK_STREAM, 0);
        int ok=1;
        struct sockaddr_in serv;
        serv.sin_family = AF_INET;
        serv.sin_port = htons(1234);
        serv.sin_addr.s_addr = INADDR_ANY;
 
        if (bind(sock,(struct sockaddr*)&serv,sizeof(serv)) != 0)
        {
                perror("Bind");
                return(0);
        }
        if (listen(sock, 20) != 0)
        {
                perror("Listen");
                return(0);
        }
 
 
 
      while(1)
      {
         sock_com=accept(sock,(struct sockaddr*)0,(int*)0);
           if (sock_com==-1)
            {
              perror("ERREUR ACCEPTE");
               return(-1);
             }
           else
          {
         perror("bravo connexion etablie");
 
           }
 
 
       int x=fork();
       if(x==-1)printf("impossible fork\n");
 
 
         if(x!=0)
         {
 
	close(sock_com);
         }
 
 
          if (x==0)
         {
              printf("on est dans le fils\n");
 
 
 
 
 
                while(boucle==0)
                {
	          */traitement des requetes du client*/
                }
          }
 
      }
 return 0;
}
Je ne sais pas si ce code servira des masses mais je voulais savoir si mon fork etait bien placé et que signifiat ce message "illegal seek".

merci beaucoup d'avance